代码如下:
得到的文件size是0
当fileOut.write(dataBytes,startPos,(endPos - startPos));
改成fileOut.write(dataBytes)
时,文件size不在是0但,上传的xls成乱码了,
谁有这方面的经验没?
<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>
<html>
<head>
<title> upFile </title>
</head>
<body bgcolor="#ffffff">
<center>
<%
String rootPath;
DataInputStream in = null;
FileOutputStream fileOut = null;
String realPath = request.getRealPath("/");
rootPath = realPath + "/upload/";
String contentType = request.getContentType();
try{
if(contentType.indexOf("multipart/form-data") >= 0){
in = new DataInputStream(request.getInputStream());
int formDataLength = request.getContentLength();
byte dataBytes[] = new byte[formDataLength];
int byteRead = 0;
int totalBytesRead = 0;
while(totalBytesRead < formDataLength){
byteRead = in.read(dataBytes,totalBytesRead,formDataLength);
totalBytesRead += byteRead;
}
String file = new String(dataBytes);
String saveFile = file.substring(file.indexOf("filename=\"") + 10);
saveFile = saveFile.substring(0,saveFile.indexOf("\n"));
saveFile = saveFile.substring(saveFile.lastIndexOf("\\") + 1,saveFile.indexOf("\""));
int lastIndex = contentType.lastIndexOf("=");
String boundary = contentType.substring(lastIndex + 1,contentType.length());
String fileName = rootPath + saveFile;
int pos;
pos = file.indexOf("filename=\"");
pos = file.indexOf("\n",pos) + 1;
pos = file.indexOf("\n",pos) + 1;
pos = file.indexOf("\n",pos) + 1;
int boundaryLocation = file.indexOf(boundary,pos) - 4;
int startPos = ((file.substring(0,pos)).getBytes()).length;
int endPos = ((file.substring(0,boundaryLocation)).getBytes()).length;
File checkFile = new File(fileName);
if(checkFile.exists()){
return;
}
File fileDir = new File(rootPath);
if(!fileDir.exists()){
fileDir.mkdirs();
}
fileOut = new FileOutputStream(fileName);
fileOut.write(dataBytes,startPos,(endPos - startPos));
fileOut.close();
}else{
String content = request.getContentType();
}
}catch(Exception ex){
throw new ServletException(ex.getMessage());
}
%>
</center>
</body>
</html>
分享到:
相关推荐
标题“解决swfupload items size=0”涉及的是一个与SWFUpload相关的技术问题,SWFUpload是一个开源的JavaScript库,用于在网页上实现高级的文件上传功能,尤其适用于处理大文件和批量上传。该问题可能出现在用户尝试...
swfupload(new)swfupload(new)swfupload(new)swfupload(new)swfupload(new)swfupload(new)swfupload(new)swfupload(new)
swfupload(new)swfupload(new)swfupload(new)swfupload(new)swfupload(new)swfupload(new)swfupload(new)swfupload(new)swfupload(new)swfupload(new)swfupload(new)
var SWFUpload; if (typeof(SWFUpload) === "function") { SWFUpload.queue = {}; SWFUpload.prototype.initSettings = (function (oldInitSettings) { return function () { if (typeof(oldInitSettings) ...
SwfUpload是一款强大的JavaScript上传控件,它支持大文件上传并能实现无刷新(Ajax)效果,极大地提升了用户在网页上的文件上传体验。在Java环境中,我们可以利用SwfUpload与后端服务配合,处理文件上传请求,实现...
在这个实例中,我们将探讨如何在VS2012环境下,使用.NET Framework 4.0开发一个基于SWFUpload的多文件上传功能。 首先,让我们理解SWFUpload的工作原理。SWFUpload是基于Flash技术的,它创建了一个隐藏的Flash对象...
下面将详细介绍如何解决Struts2与SWFupload上传冲突的问题。 **1. 问题分析** Struts2提供了一套自己的文件上传机制,它通过Interceptor(拦截器)来处理上传请求。而SWFupload利用Flash技术上传文件,其提交的数据...
- 文件上传可能涉及安全问题,例如防止非法文件上传、文件名冲突等,需要在后端进行严格的验证和处理。 - 考虑到用户可能禁用Flash,应提供一个备用的HTML5上传方案。 - 调整SwfUpload的配置以适应服务器的限制,...
在C# ASP.NET环境中,确保正确处理Multipart/FormData请求是非常重要的,因为这是SwfUpload上传文件所采用的格式。后端代码需要解析这些数据,提取出文件内容并保存到合适的目录下。同时,考虑到安全性,需要对上传...
在实际项目中,通过合理的配置和事件处理,可以轻松实现如"swfUpload上传文件图片(多图片)"这样的需求。在使用SwfUpload时,确保正确引入资源、配置参数并处理好上传过程中的各种事件,就能为用户提供一个高效、...
由于使用了Flash技术,SWFUpload可以在不刷新页面的情况下,实现文件的异步上传,从而提高了用户体验。 ### 2. 工作原理 SWFUpload利用浏览器中的Flash Player来处理文件选择和上传过程。用户选择文件后,Flash将...
总的来说,"swfupload上传demo示例"提供了一个完整的解决方案,展示了如何在ThinkPHP框架下使用SwfUpload实现多文件上传功能。通过理解SwfUpload的工作原理,结合ThinkPHP的控制器和视图机制,以及恰当的数据库设计...
*swfUpload/Flash/swfupload.swf?movieName=aaa"])}catch(e){(alert)(1)};// *解决swfupload-xss注入,自己项目中遇到的,已经修改 亲测通过 *将文件中的swf文件替换掉项目中的swf文件 *将swfupload.as文件替换掉...
SWFUpload 是一款开源的Flash上传组件,它在过去的网页开发中被广泛使用,尤其在应对多文件上传和处理大文件上传时具有显著优势。它的核心功能是利用Flash技术实现跨浏览器的文件上传,即便是在那些不支持HTML5的旧...
通达OA漏洞合集
SwfUpload 是一款开源的Flash上传组件,它允许在网页中实现文件的上传,并且能够显示上传进度条,提供了一种用户体验良好的文件上传方式。在本文中,我们将深入探讨如何利用SwfUpload与jsp、Java Servlet相结合,...
使用SwfUpload上传文件时,需要注意安全问题。例如,限制文件类型以防止恶意文件上传,验证文件大小以避免DoS攻击,以及确保文件保存路径的安全性。 8. **调试与测试** 在VS2013中,可以利用内置的浏览器调试工具...
这个"swfupload上传实例"是一个具体的示例,展示了如何在PHP环境中集成SWFUpload以实现高效的文件上传功能。 ### 1. SWFUpload 概述 SWFUpload 是一款开源项目,利用Adobe Flash插件(SWF文件)作为前端界面,提供...
SwfUpload 是一款开源的Flash上传组件,它允许用户在网页上实现多文件上传功能,尤其适用于需要大文件上传或批量上传的场景。这个技术在Web开发中被广泛应用,因为它可以提供比传统HTML表单上传更好的用户体验。...
在ASP环境中,SWFUpload 可以很好地解决传统ASP上传文件时遇到的大小限制和性能问题。 首先,我们要理解SWFUpload的工作原理。它利用了Adobe Flash技术来绕过浏览器对文件上传大小的限制,因为Flash插件允许上传更...