JSP实现选择多图上传
JSP怎样实现选择多个图片上传啊,像QQ相册一样,同时上传多张图,但是我不想要多个<input type="file">这样实现,因为
如果我有1000张图片怎么办,总不是要我写上1000个<input type="file">,这样太不人性化了,想了很久也找了很久的资料都
没有找到解决的办法,有谁知道帮帮我吧
急,大家帮帮忙吧!!!
[解决办法]
用js的document.write ();
[解决办法]
用uploadify吧,这个支持多文件同时上传
[解决办法]
用uploadify吧,这个支持多文件同时上传
[解决办法]
用uploadify吧,这个支持多文件同时上传
[解决办法]
http://www.dwww.cn/news/2009-3/2009331202988990.shtml
[解决办法]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>文件上传</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body> <p> </p> <p align="center">上传文件选择</p> <FORM METHOD="POST" ACTION="jsp/do_upload.jsp" ENCTYPE="multipart/form-data"> <input type="hidden" name="TEST" value="good"> <table width="75%" border="1" align="center"> <tr> <td><div align="center">1、 <input type="FILE" name="FILE1" size="30"> </div></td> </tr> <tr> <td><div align="center">2、 <input type="FILE" name="FILE2" size="30"> </div></td> </tr> <tr> <td><div align="center">3、 <input type="FILE" name="FILE3" size="30"> </div></td> </tr> <tr> <td><div align="center">4、 <input type="FILE" name="FILE4" size="30"> </div></td> </tr> <tr> <td><div align="center"> <input type="submit" name="Submit" value="上传它!"> </div></td> </tr> </table> </FORM> </body> </html>
[解决办法]
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.util.*,com.jspsmart.upload.*" errorPage="" %> <html> <head> <title>文件上传处理页面</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body> <% // 新建一个SmartUpload对象 SmartUpload su = new SmartUpload(); // 上传初始化 su.initialize(pageContext); // 设定上传限制 // 1.限制每个上传文件的最大长度。 // su.setMaxFileSize(10000); // 2.限制总上传数据的长度。 // su.setTotalMaxFileSize(20000); // 3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。 // su.setAllowedFilesList("doc,txt"); // 4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat, jsp,htm,html扩展名的文件和没有扩展名的文件。 // su.setDeniedFilesList("exe,bat,jsp,htm,html,,"); // 上传文件 su.upload(); // 将上传文件全部保存到指定目录 int count = su.save("/upload"); out.println(count+"个文件上传成功!<br>"); // 利用Request对象获取参数之值 out.println("TEST="+su.getRequest().getParameter("TEST") +"<BR><BR>"); // 逐一提取上传文件信息,同时可保存文件。 for (int i=0;i<su.getFiles().getCount();i++) { com.jspsmart.upload.File file = su.getFiles().getFile(i); // 若文件不存在则继续 if (file.isMissing()) continue; // 显示当前文件信息 out.println("<TABLE BORDER=1>"); out.println("<TR><TD>表单项名(FieldName)</TD><TD>" + file.getFieldName() + "</TD></TR>"); out.println("<TR><TD>文件长度(Size)</TD><TD>" + file.getSize() + "</TD></TR>"); out.println("<TR><TD>文件名(FileName)</TD><TD>" + file.getFileName() + "</TD></TR>"); out.println("<TR><TD>文件扩展名(FileExt)</TD><TD>" + file.getFileExt() + "</TD></TR>"); out.println("<TR><TD>文件全名(FilePathName)</TD><TD>" + file.getFilePathName() + "</TD></TR>"); out.println("</TABLE><BR>"); // 将文件另存 // file.saveAs("/upload/" + myFile.getFileName()); // 另存到以WEB应用程序的根目录为文件根目录的目录下 // file.saveAs("/upload/" + myFile.getFileName(), su.SAVE_VIRTUAL); // 另存到操作系统的根目录为文件根目录的目录下 // file.saveAs("c:\\temp\\" + myFile.getFileName(), su.SAVE_PHYSICAL); } %> </body> </html>
[解决办法]
你可以用javascript在那个jsp页面上加多一点上传控件就可以了,再多的文件也可以上传成功了
[解决办法]
使用Flex配合JSP实现上传 带进度条。。效果挺不错.... 处理后台是JAVA
<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontSize="12"><mx:Script> <![CDATA[ import mx.controls.Alert; import mx.collections.ArrayCollection; import mx.utils.ArrayUtil; internal var files:FileReferenceList; //internal var fileInfos:ArrayCollection = new ArrayCollection([{name:"11212" , size:"222"}]); /** * 浏览 */ internal function browserFile():void{ files = new FileReferenceList(); files.addEventListener(Event.SELECT , selectHandler); files.browse(); } /** * 选择之后 */ internal function selectHandler(evt:Event):void{ files = evt.target as FileReferenceList; fileInfoDG.dataProvider = new ArrayCollection(files.fileList); //fileSize.text = "文件大小:"+file.size + " 文件名称:"+file.name; } /** * 文件大小KB 单位处理 * DataGrid 有几列就有多少个参数 */ internal function fileSizelableFunction(val1:Object , val2:Object):String{ return val1.size + "kb"; } /** * 开始上传 */ internal function startUpload():void{ if(files.fileList.length > 0){ //上传 this.uploadFileReference(files.fileList[0] as FileReference); } } /** * 上传 */ internal function uploadFileReference(file:FileReference):void{ progressBarStatus.maximum = file.size; file.addEventListener(ProgressEvent.PROGRESS , progressUpload); // file.upload( new URLRequest("http://localhost:8888/FlexServerUpload/index.jsp") , file.name); } /** * 在文件上传期间 定期调用.. */ internal function progressUpload(evt:ProgressEvent):void{ try{ //Alert.show(evt.bytesLoaded.toString()); progressBarStatus.setProgress(evt.bytesLoaded , (evt.target as FileReference).size); progressBarStatus.label = "Loading:"+ Math.floor((evt.bytesLoaded / (evt.target as FileReference).size * 100)).toString() + "%"; }catch(error:Error){ Alert.show("上传失败......."); } } ]]></mx:Script> <mx:Form width="366"> <mx:HBox> <mx:FormItem label="说明:"> <mx:TextInput text="单击浏览选择文件进行上传.." enabled="false"/> </mx:FormItem> <mx:FormItem> <mx:Button width="80" label="浏览..." click="browserFile()"/> </mx:FormItem> </mx:HBox> </mx:Form> <mx:DataGrid id="fileInfoDG" x="0" y="120" height="400" width="502"> <mx:columns> <mx:DataGridColumn width="200" headerText="文件名称" dataField="name"/> <mx:DataGridColumn width="200" headerText="文件大小" labelFunction="fileSizelableFunction"/> </mx:columns> </mx:DataGrid> <mx:Button x="433" y="76" id="btnUpload" click="startUpload()" label="上传" width="69" height="36"/> <mx:ProgressBar x="0" y="82" width="402" id="progressBarStatus" indeterminate="false" mode="manual" /></mx:Application>