读书人

jave web 批量下传

发布时间: 2012-12-14 10:33:07 作者: rapoo

jave web 批量上传
我的需求是这样的:Servlet+JSP 进行开发 只有一个<input type="file"/>,可以选择多个文件上传,服务器端接收这些文件,将它们的路径保存到数据库中。我在网上看了很多,要用到swfupload组件,可是我不会用这个组件(老外写的,看不懂)。请高手给指点一下,如果代码太多,可以发到我的邮箱里:jianghaodongok@yahoo.cn 如能解决问题,不胜感激。
[最优解释]

引用:
我的需求是这样的:Servlet+JSP 进行开发 只有一个<input type="file"/>,可以选择多个文件上传,服务器端接收这些文件,将它们的路径保存到数据库中。我在网上看了很多,要用到swfupload组件,可是我不会用这个组件(老外写的,看不懂)。请高手给指点一下,如果代码太多,可以发到我的邮箱里:jianghaodongok@yahoo.cn 如能解……

楼主试试这个控件:http://www.cnblogs.com/xproer/archive/2010/10/24/1859895.html
此控件是基于标准HTTP协议实现的文件上传功能。优势是扩展性非常好,整合简单,支持批量上传文件和上传文件夹功能,上传前获取本地文件大小,适合各种简单WEB项目。
另外一个特点是支持自动上传指定的本地文件。



单文件上传演示

上传本地文件代码
使用步骤如下:
1.调用AddFile函数添加本地文件,注意路径需要使用双斜框(\\)
2.调用PostFirst函数开始上传文件。

<script type="text/javascript" language="javascript">
var uploaderMgr = new HttpUploaderMgr();
uploaderMgr.Load();//加载控件

window.onload = function()
{
uploaderMgr.Init();//初始化控件
//添加一个本地文件
uploaderMgr.AddFile("D:\\Soft\\QQ2010.exe");
uploaderMgr.PostFirst();

};
</script>


单文件整合代码:

服务器返回消息:<input id="txtFilePath" type="text" size="50" />
<script type="text/javascript" language="javascript">
var uploaderMgr = new HttpUploaderSingleMgr();
uploaderMgr.Config["PostUrl"] = "http://localhost:8080/asp.net/upload.aspx";
uploaderMgr.Load();
//文件上传完成后执行的回调函数
uploaderMgr.CompleteHook = function(msg)
{
document.getElementById("txtFilePath").value = msg;
};

window.onload = function()
{
uploaderMgr.Init();
};
</script>

示例下载:
CAB安装包
开发文档
ASP示例
ASP.NET示例
ASP.NET-FCKEditor2.x示例
JSP示例
PHP示例

[其他解释]
谢谢分享谢谢分享
[其他解释]
楼主能分享一下么 554193911@qq.com
[其他解释]
swfupload组件很好用的,把需要的文件放在web项目里,关于前台的js设置你上网查,网上很多。
你只需要写后台代码就可以。 你用的是servlet是吧,我把代码贴给你,你瞅瞅。

import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import com.bjcq.tool.Tool;

public class FileUploadServlet extends HttpServlet {
private static final long serialVersionUID = -7825355637448948879L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)


throws ServletException, IOException {
uploadFile(request,response);
}


private void uploadFile(HttpServletRequest request, HttpServletResponse response){
String dir = request.getSession().getServletContext().getRealPath("/uploadFile");//把上传的文件保存在uploadFile文件夹里
File file = new File(dir);
if(!file.exists())
file.mkdirs();

FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
//防止中文文件名乱码
upload.setHeaderEncoding("UTF-8");
try {
List<FileItem> items = upload.parseRequest(request);
if (items != null) {
Iterator<FileItem> itr = items.iterator();
while (itr.hasNext()) {
FileItem item = (FileItem) itr.next();
if (item.isFormField()) {
continue;
} else {
File savedFile=new File(dir+File.separator+item.getName());
item.write(savedFile);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
try {
response.getOutputStream().println("200 OK");
} catch (IOException e) {
e.printStackTrace();
}
}



}



虽然swfuploadFile可以实现批量上传,但本质上还是一个一个文件上传。
[其他解释]
引用:
Xproer.HttpUploader2:http://www.cnblogs.com/xproer/archive/2010/10/24/1859895.html
此控件是基于标准HTTP协议实现的文件上传功能。优势是扩展性非常好,整合简单,支持批量上传文件和上传文件夹功能,上传前获取本地文件大小,适合各种简单WEB项目。
另外一个特点是支持自动上传指定的本地文件。
上传本地文件代码
使用步骤如下:
1.调用AddFile函数添加本地文件,注意路径需要使用双斜框(\\)
2.调用PostFirst函数开始上传文件。

<script type="text/javascript" language="javascript">
var uploaderMgr = new HttpUploaderMgr();
uploaderMgr.Load();//加载控件

window.onload = function()


{
uploaderMgr.Init();//初始化控件
//添加一个本地文件
uploaderMgr.AddFile("D:\\Soft\\QQ2010.exe");
uploaderMgr.PostFirst();

};
</script>



单文件整合代码:

服务器返回消息:<input id="txtFilePath" type="text" size="50" />
<script type="text/javascript" language="javascript">
var uploaderMgr = new HttpUploaderSingleMgr();
uploaderMgr.Config["PostUrl"] = "http://localhost:8080/asp.net/upload.aspx";
uploaderMgr.Load();
//文件上传完成后执行的回调函数
uploaderMgr.CompleteHook = function(msg)
{
document.getElementById("txtFilePath").value = msg;
};

window.onload = function()
{
uploaderMgr.Init();
};
</script>

示例下载:
CAB安装包
开发文档
ASP示例
ASP.NET示例
ASP.NET-FCKEditor2.x示例
JSP示例
PHP示例

还行,之前做的一个项目也是用的这个控件。提供的示例比较完善。
[其他解释]
引用:
引用:我的需求是这样的:Servlet+JSP 进行开发 只有一个<input type="file"/>,可以选择多个文件上传,服务器端接收这些文件,将它们的路径保存到数据库中。我在网上看了很多,要用到swfupload组件,可是我不会用这个组件(老外写的,看不懂)。请高手给指点一下,如果代码太多,可以发到我的邮箱里:jianghao……
+1
[其他解释]
感谢大家对我提供的帮助,非常感谢ck0in2gb0oy 给予的回复,对我很有用,谢谢

读书人网 >Java Web开发

热点推荐