上传:
1、设置表单的ENCTYPE='multipart/form-data'和method='post';
注意:这时候form表单中的其他参数在后台无法利用request.getParameter("paramName")获得,需要利用JS以参数的形式附加到提交URL后面。
2、利用InputStream in = request.getInputStream()以流的方式读取文件;
注意:剔除文件的头信息,占四行,可利用下面的方式:
for(int i = 0; i < 4; i++){
in.readLine();
}
3、写到输出流。
注意:利用缓冲区提高效率;调用out.flush()强制刷新缓冲区。
下载:
1、设置响应头信息:response.setContentType("application/octet-stream;charset=UTF-8");
2、设置附加文件信息:response.setHeader("Content-Disposition", "attachment; filename="
+ fileName);
注意:对于文件名fileName需要解决不同浏览器上对汉字编码的处理,这需要commons-codec库的支持,工具代码如下:
/**
* 根据不同浏览器对文件名进行编码
* @param request 客户端请求
* @param fileName 文件名
* @return 编码后的文件名
*/
public String encodeFileName(HttpServletRequest request, String fileName){
String agent = request.getHeader("USER-AGENT");
try{
if (null != agent && -1 != agent.indexOf("MSIE")) {
return URLEncoder.encode(fileName, "UTF-8");
}else if (null != agent && -1 != agent.indexOf("Mozilla")) {
return "=?UTF-8?B?"+
new String(
Base64.encodeBase64(
fileName.getBytes("UTF-8")
)
) + "?=";
} else {
return fileName;
}
}catch(UnsupportedEncodingException e){
return null;
}
}
3、利用输出流提供下载:OutStream out = response.getOutputStream()。
第三方上传组件:
commons-fileupload, cos, pell, jspsmartupload等。
分享到:
相关推荐
最原始的多文件上传处理方法,方法是老了点,土了点,但上手容易,实用啊。
为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/form-data。只有在这样的情况下,浏览器才会把用户选择的文件以二进制数据发送给服务器。 一旦设置了enctype为multipart/form-data,...
该类,包含文件的上传,下载,读写等方法。该类简化了,PHP程序员在原始代码中,对文件上传下载的过程
上传功能修正已知安全bug(限制上传文件类型)2.自动生成缩略图(大小可在config.php中设置)3.多种排序方法4.限制原始图的大小和宽高
前端页面使用Bootstrap自适应框架,后端使用原始的jsp+servlet技术开发java Web。主要实现文件上传和下载的功能,功能较为完整,适合初学者学习。
SWFUpload上传前预览,这个是原始文件,可以自己随意开发和修改
按原始文件名上传文件 重命名文件上传 指定文件名上传 无表单,编辑器专用文件上传与返回 上传文件后返回绝对地址 上传文件后返回完整网站 上传文件后仅返回文件名 远程文件上传 已上传文件翻页查看与插入 查看已...
分片与并发结合 将一个大文件分割成多块 并发上传 极大地提高大文件的上传速度 当网络问题导致传输错误时 只需要重传出错分片 而不是整个文件 另外分片传输能够更加实时的跟踪上传进度 预览 压缩 支持常用图片...
功能简述: 上传文件到指定文件夹 对上传文件类型、大小限制 按原始文件名上传文件 重命名文件上传 指定文件名上传 无表单,编辑器专用文件上传与返回 上传文件后返回绝对地址 上传文件后返回完整网站 上传文件后仅...
node最原始的的文件上传,这段代码便于应付简单的上传回显,对于复杂的上传比如超大文件、显示进度等,需要用文件通道接管临时文件流,自己改一下吧,也可以用express,看到有人要混点下载分而已...
java实现视频上传,前端用webuploader分片,后台合文件并用ffmpeg进行压缩处理。
uEditor上传图片并保存为原文件名,参照了网上的,原本是不能保存为原文件名的。
为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/form-data。只有在这样的情况下,浏览器才会把用户选择的文件以二进制数据发送给服务器。 一旦设置了enctype为multipart/form-data,...
rack-raw-upload, 处理原始文件上传的rack 中间件 警告:你可能不需要这个如果你想使用这个,因为你正在执行HTML5文件上传,你可能正在做的是的"旧路径"。有一个"新建",更好的方式来做这个。 对于你的问题,它可能...
微信公众平台配置服务器时所需的验证文件,下载文件后修改配置即可使用。需要帮助可联系v:654080169
这个我写的是最基本的多图片上传,可以根据自行修改。可改为文件上传、单图上传。可扩展
永宏PLC 上传口令解密软件 直读原始密码 上传密码。PDW程序文件密码都可以显示原始密码 不限制版本 但是读程序不能停在5% 安全不破坏程序 (当用编程软件读程序时候。不能停留在5% 否则不可解) 必须能读完进度条才...
接受上传文件:okUpload.jsp 接受图片改变名称保存到指定目录并在网页上发布 接受参数值并显示在图片下面 ; charset=gbk"%> *" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> ...
使用ajaxfileupload.js异步文件上传脚本上传文件,这样做可以防止页面跳转, 然后使用定时器发送异步请求实时更新上传进度 这里是原始参考连接 http://blog.sina.com.cn/s/blog_674b23220100he8x.html
然后依次将片段上传到服务器,服务器后端接收到全部片段后,再组装成完整的文件,后端在组装片段时,会将校验原始文件与组装文件的尺寸,确保文件不会缺失片段,已经测试可以正常上传。 前面还发过一个PHP+H5的大...