问题描述
想在jsp页面将本地的word传到服务器硬盘上,请问有什么方法实现吗?
解决方案
解决方案二:
没人吗
解决方案三:
引用楼主silenze的回复:
想在jsp页面将本地的word传到服务器硬盘上,请问有什么方法实现吗?
这个需求只能借助于控件来实现。因为JS没有访问本地硬盘文件的权限。IE,Firefrox,Chrome都做了权限限制。
解决方案四:
引用楼主silenze的回复:
想在jsp页面将本地的word传到服务器硬盘上,请问有什么方法实现吗?
楼主试试这个控件:此控件是基于标准HTTP协议实现的文件上传功能。优势是扩展性非常好,整合简单,支持批量上传文件和上传文件夹功能,上传前获取本地文件大小,适合各种简单WEB项目。另外一个特点是支持自动上传指定的本地文件。单文件上传演示上传本地文件代码使用步骤如下:1.调用AddFile函数添加本地文件,注意路径需要使用双斜框(\)2.调用PostFirst函数开始上传文件。<scripttype="text/javascript"language="javascript">varfileMgr=newHttpUploaderMgr();fileMgr.Load();//加载控件window.onload=function(){fileMgr.Init();//初始化控件//添加一个本地文件fileMgr.AddFile("D:\Soft\QQ2010.exe");fileMgr.PostFirst();};</script>
获取本地文件大小服务器返回消息:<inputid="txtFilePath"type="text"size="50"/><scripttype="text/javascript"language="javascript">varfileMgr=newHttpUploaderSingleMgr();fileMgr.Config["PostUrl"]="http://localhost:8080/asp.net/upload.aspx";//指定文件上传地址,可以在这里设置文件服务器地址fileMgr.Load();functiontestFileSize(){varobj=newActiveXObject(fileMgr.ActiveX["Partition"]);alert(obj.FileSize("D:\VS2012.SP4.iso"));}functiontestFileLength(){varobj=newActiveXObject(fileMgr.ActiveX["Partition"]);alert(obj.FileLength("D:\VS2012.SP4.iso"));}</script>
单文件整合代码:服务器返回消息:<inputid="txtFilePath"type="text"size="50"/><scripttype="text/javascript"language="javascript">varfileMgr=newHttpUploaderSingleMgr();fileMgr.Config["PostUrl"]="http://localhost:8080/asp.net/upload.aspx";//指定文件上传地址,可以在这里设置文件服务器地址fileMgr.Load();//文件上传完成后执行的回调函数fileMgr.CompleteHook=function(msg){document.getElementById("txtFilePath").value=msg;};window.onload=function(){fileMgr.Init();};</script>
示例下载:
解决方案五:
引用3楼cnetfcwra的回复:
Xproer.HttpUploader2:此控件是基于标准HTTP协议实现的文件上传功能。优势是扩展性非常好,整合简单,支持批量上传文件和上传文件夹功能,上传前获取本地文件大小,适合各种简单WEB项目。另外一个特点是支持自动上传指定的本地文件。上传本地文件代码使用步骤如下:1.调用AddFile函数添加本地文件,注意路径需要使用双斜框(\)2.调用PostFirst函数开始上传文件。<scripttype="text/javascript"language="javascript">varfileMgr=newHttpUploaderMgr();fileMgr.Load();//加载控件window.onload=function(){fileMgr.Init();//初始化控件//添加一个本地文件fileMgr.AddFile("D:\Soft\QQ2010.exe");fileMgr.PostFirst();};</script>获取本地文件大小服务器返回消息:<inputid="txtFilePath"type="text"size="50"/><scripttype="text/javascript"language="javascript">varfileMgr=newHttpUploaderSingleMgr();fileMgr.Config["PostUrl"]="http://localhost:8080/asp.net/upload.aspx";//指定文件上传地址,可以在这里设置文件服务器地址fileMgr.Load();functiontestFileSize(){varobj=newActiveXObject(fileMgr.ActiveX["Partition"]);alert(obj.FileSize("D:\VS2012.SP4.iso"));}functiontestFileLength(){varobj=newActiveXObject(fileMgr.ActiveX["Partition"]);alert(obj.FileLength("D:\VS2012.SP4.iso"));}</script>
单文件整合代码:服务器返回消息:<inputid="txtFilePath"type="text"size="50"/><scripttype="text/javascript"language="javascript">varfileMgr=newHttpUploaderSingleMgr();fileMgr.Config["PostUrl"]="http://localhost:8080/asp.net/upload.aspx";//指定文件上传地址,可以在这里设置文件服务器地址fileMgr.Load();//文件上传完成后执行的回调函数fileMgr.CompleteHook=function(msg){document.getElementById("txtFilePath").value=msg;};window.onload=function(){fileMgr.Init();};</script>
示例下载:
这个不错,整合简单。使用也比较方便。
解决方案六:
upload.jsp代码;<%@pagelanguage="java"contentType="text/html;charset=UTF-8"%><html><head><title>usingcommonsUploadtouploadfile</title></head><style>*{font-family:"宋体";font-size:14px}</style><body><palign="center">请您选择需要上传的文件</p><formid="form1"name="form1"method="post"action="servlet/fileServlet"enctype="multipart/form-data"><tableborder="0"align="center"><tr><td>上传人:</td><td><inputname="name"type="text"id="name"size="20"></td></tr><tr><td>上传文件:</td><td><inputname="file"type="file"size="20"></td></tr><tr><td></td><td><inputtype="submit"name="submit"value="提交"><inputtype="reset"name="reset"value="重置"></td></tr></table></form></body></html>--------------------------------------------------------------------------------------------------FileUploadServlet.java代码:/****/packagecom.b510.example;importjava.io.File;importjava.io.IOException;importjava.util.*;importjavax.servlet.ServletConfig;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.commons.fileupload.FileItem;importorg.apache.commons.fileupload.FileUploadException;importorg.apache.commons.fileupload.disk.DiskFileItemFactory;importorg.apache.commons.fileupload.servlet.ServletFileUpload;/****@authorXHW**@date2011-7-26**/publicclassFileUploadServletextendsHttpServlet{privatestaticfinallongserialVersionUID=-7744625344830285257L;privateServletContextsc;privateStringsavePath;publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doPost(request,response);}publicvoidinit(ServletConfigconfig){//在web.xml中设置的一个初始化参数savePath=config.getInitParameter("savePath");sc=config.getServletContext();}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{request.setCharacterEncoding("UTF-8");DiskFileItemFactoryfactory=newDiskFileItemFactory();ServletFileUploadupload=newServletFileUpload(factory);try{Listitems=upload.parseRequest(request);Iteratoritr=items.iterator();while(itr.hasNext()){FileItemitem=(FileItem)itr.next();if(item.isFormField()){System.out.println("表单参数名:"+item.getFieldName()+",表单参数值:"+item.getString("UTF-8"));}else{if(item.getName()!=null&&!item.getName().equals("")){System.out.println("上传文件的大小:"+item.getSize());System.out.println("上传文件的类型:"+item.getContentType());//item.getName()返回上传文件在客户端的完整路径名称System.out.println("上传文件的名称:"+item.getName());FiletempFile=newFile(item.getName()); //上传文件的保存路径Filefile=newFile(sc.getRealPath("/")+savePath,tempFile.getName());item.write(file);request.setAttribute("upload.message","上传文件成功!");}else{request.setAttribute("upload.message","没有选择上传文件!");}}}}catch(FileUploadExceptione){e.printStackTrace();}catch(Exceptione){e.printStackTrace();request.setAttribute("upload.message","上传文件失败!");}request.getRequestDispatcher("/uploadResult.jsp").forward(request,response);}}--------------------------------------------------------------------------------------------------uploadResult.jsp代码;<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><title>uploadResult</title><metahttp-equiv="pragma"content="no-cache"><metahttp-equiv="cache-control"content="no-cache"><metahttp-equiv="expires"content="0"><metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"><metahttp-equiv="description"content="Thisismypage"><!--<linkrel="stylesheet"type="text/css"href="styles.css">--></head><body>${requestScope['upload.message']}<ahref="/upload/uploadFile.jsp">上传文件</a></body></html>--------------------------------------------------------------------------------------------------web.xml代码:<?xmlversion="1.0"encoding="UTF-8"?><web-appversion="2.5"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><servlet><description>ThisisthedescriptionofmyJ2EEcomponent</description><display-name>ThisisthedisplaynameofmyJ2EEcomponent</display-name><servlet-name>FileUploadServlet</servlet-name><servlet-class>com.b510.example.FileUploadServlet</servlet-class> <!--设置初始化参数--><init-param><param-name>savePath</param-name><param-value>uploads</param-value></init-param></servlet><servlet-mapping><servlet-name>FileUploadServlet</servlet-name><url-pattern>/servlet/fileServlet</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file><welcome-file>uploadFile.jsp</welcome-file></welcome-file-list></web-app>
解决方案七:
引用楼主silenze的回复:
想在jsp页面将本地的word传到服务器硬盘上,请问有什么方法实现吗?
如果是指定路径的话,就只能用控件来实现。如果让用户选择的话就用input[type=file]。楼上朋友推荐的Xproer.HttpUploader2不错。看起来挻强大的。我们公司做的一个项目也有这个需求,打算换这个控件来试试。