java多文件上传|java多文件上传显示进度条

java多文件上传|java多文件上传显示进度条的第1张示图

『壹』 java实现多文件上传

即使再多文件也是通过的单个文件逐次上传的(zip等压缩包实际上是一个文件)。实现思路就是将多个文件循环进行上传,上传方法举例:/*** 上传文件** @param fileName* @param plainFilePath 文件路径路径* @param filepath* @return * @throws Exception*/public static String fileUploadByFtp(String plainFilePath, String fileName, String filepath) throws Exception {FileInputStream fis = null;ByteArrayOutputStream bos = null;FTPClient ftpClient = new FTPClient();String bl = "false";try {fis = new FileInputStream(plainFilePath);bos = new ByteArrayOutputStream(fis.available());byte[] buffer = new byte[1024];int count = 0;while ((count = fis.read(buffer)) != -1) {bos.write(buffer, 0, count);}bos.flush();Log.info("加密上传文件开始");Log.info("连接远程上传服务器"+CCFCCBUtil.CCFCCBHOSTNAME+":"+22);ftpClient.connect(CCFCCBUtil.CCFCCBHOSTNAME, 22);ftpClient.login(CCFCCBUtil.CCFCCBLOGINNAME, CCFCCBUtil.CCFCCBLOGINPASSWORD);FTPFile[] fs;fs = ftpClient.listFiles();for (FTPFile ff : fs) {if (ff.getName().equals(filepath)) {bl="true";ftpClient.changeWorkingDirectory("/"+filepath+"");}}Log.info("检查文件路径是否存在:/"+filepath);if("false".equals(bl)){ViewUtil.dataSEErrorPerformedCommon( "查询文件路径不存在:"+"/"+filepath);return bl;}ftpClient.setBufferSize(1024);ftpClient.setControlEncoding("GBK");// 设置文件类型(二进制)ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);ftpClient.storeFile(fileName, fis);Log.info("上传文件成功:"+fileName+"。文件保存路径:"+"/"+filepath+"/");return bl;} catch (Exception e) {throw e;} finally {if (fis != null) {try {fis.close();} catch (Exception e) {Log.info(e.getLocalizedMessage(), e);}}if (bos != null) {try {bos.close();} catch (Exception e) {Log.info(e.getLocalizedMessage(), e);}}}}备注:只需要修改上传的服务器地址、用户名、密码即可进行服务器访问上传。根据实际需要修改即可。

『贰』 java中 是否允许多个 type=个file同时上传

java中是可以支持多文件上传的,参考代码如下:

@RequestMapping(value={"multipleFileUpload"},method={RequestMethod.GET,RequestMethod.POST})(ModelMapmodelMap,,HttpServletResponseresponse,@RequestParam(value="type")Stringtype,@RequestParam(value="jobId")StringjobId)throwsIOException{List<MultipartFile>files=request.getFiles("files");response.setHeader("Access-Control-Allow-Origin","http://www.gifmiao.com");Map<String,Object>statusMap=newHashMap<>();HttpSessionsession=request.getSession();session.setAttribute("gifCompressStatus",statusMap);intcompressSize=getCompressSizeByValue(type);for(MultipartFilefile:files){Stringfilename=file.getOriginalFilename().split(".gif")[0];Map<String,Object>resultMap=newHashMap<>();resultMap.put("size",0);resultMap.put("status",0);resultMap.put("url","");statusMap.put(filename,resultMap);InputStreamis=file.getInputStream();byte[]bytes=IOUtils.toByteArray(is);CompressWorkerworker=newCompressWorker(statusMap,bytes,filename,compressSize,jobId);worker.start();}modelMap.addAttribute("json",StringUtils.toInsensitiveJson(newReturnMap("线程已启动")));return"json";}

『叁』 java怎么上传多个文件到服务器上

据我的能力理解不太能同时实现。我讲下我的实现思路:1,你有一台作为接收,文件上传至此, 得到file1;2,file1,输出到另一台机器 建议采用(ftp协议),至于是同步还是异步执行无关紧要。3,其他逻辑。

『肆』 Java 批量大文件上传下载如何实现

解决这种大文件上传不太可能用web上传的方式,只有自己开发插件或是当门客户端上传,或者用现有的ftp等。1)开发一个web插件。用于上传文件。2)开发一个FTP工具,不用web上传。3)用现有的FTP工具。下面是几款不错的插件,你可以试试:1)Jquery的uploadify插件。具体使用。你可以看帮助文档。

『伍』 java如何实现文件上传

public static int transFile(InputStream in, OutputStream out, int fileSize) {int receiveLen = 0;final int bufSize = 1000;try {byte[] buf = new byte[bufSize];int len = 0;while(fileSize – receiveLen > bufSize){len = in.read(buf);out.write(buf, 0, len);out.flush();receiveLen += len;System.out.println(len);}while(receiveLen < fileSize){len = in.read(buf, 0, fileSize – receiveLen);System.out.println(len);out.write(buf, 0, len);receiveLen += len;out.flush();}} catch (IOException e) {// TODO 自动生成 catch 块e.printStackTrace();}return receiveLen;}这个方法从InputStream中读取内容,写到OutputStream中。那么发送文件方,InputStream就是,OutputStream就是Socket.getOutputStream.接受文件方,InputStream就是Socket.getInputStream,OutputStream就是FileOutputStream。就OK了。 至于存到数据库里嘛,Oracle里用Blob。搜索一下,也是一样的。从Blob能获取一个输出流。

『陆』 谁能说说java批量上传文件的原理,并且给个例子吧 谢了

刚学完多文件上传,希望对你有帮助。多文件上传,就是把多个文件一起传到指定的位置,他和单文件上传类似,只需要改动几个地方而已即可。首先是上传页面,由于要上传多个文件,所以就必须有多个供用户选择的文件框,然后修改Action,把action中属性的类型修改为list。action如下:public class UploadActionMany extends ActionSupport{ private List<File> upload; private List<String> uploadFileName; public String execute() throws Exception { // TODO Auto-generated method stub System.out.print(upload.size()); if(upload!=null){ for (int i = 0; i < upload.size(); i++) { InputStream is=new FileInputStream(upload.get(i)); OutputStream os=new FileOutputStream("d:\\upload\\"+getUploadFileName().get(i)); byte buffer[]=new byte[1024]; int count=0; while((count=is.read(buffer))>0){ os.write(buffer,0,count); } os.close(); is.close(); } } return SUCCESS; }省略set和get方法jsp如下:<html> <head> <title>文件上传</title> </head> <body> <s:form action="upload.action" method="post" enctype="multipart/form-data"> <s:file name="upload" label="上传的文件一"></s:file> <s:file name="upload" label="上传的文件二"></s:file> <s:file name="upload" label="上传的文件三"></s:file> <s:submit value="上传"></s:submit> </s:form> </body> </html>希望对你有帮助,打代码不容易啊,记得给点分

『柒』 javaweb 多文件上传

用js添加div,每个div中具有一个form的表单实现上传!

『捌』 java多文件上传显示进度条

使用 apache fileupload ,spring MVC jquery1.6x , bootstrap 实现一个带进度条的多文件上传,由于fileupload 的局限,暂不能实现每个上传文件都显示进度条,只能实现一个总的进度条,效果如图:

packagecom.controller;importjava.util.List;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importorg.apache.commons.fileupload.FileItemFactory;importorg.apache.commons.fileupload.ProgressListener;importorg.apache.commons.fileupload.disk.DiskFileItemFactory;importorg.apache.commons.fileupload.servlet.ServletFileUpload;importorg.apache.log4j.Logger;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestMethod;importorg.springframework.web.bind.annotation.ResponseBody;importorg.springframework.web.servlet.ModelAndView;@Controller{Loggerlog=Logger.getLogger(FileUploadController.class);/***upload上传文件*@paramrequest*@paramresponse*@return*@throwsException*/@RequestMapping(value="/upload.html",method=RequestMethod.POST)publicModelAndViewupload(HttpServletRequestrequest,HttpServletResponseresponse)throwsException{finalHttpSessionhs=request.getSession();ModelAndViewmv=newModelAndView();booleanisMultipart=ServletFileUpload.isMultipartContent(request);if(!isMultipart){returnmv;}//Createafactoryfordisk-basedfileitemsFileItemFactoryfactory=newDiskFileItemFactory();//CreateanewfileuploadhandlerServletFileUploapload=newServletFileUpload(factory);upload.setProgressListener(newProgressListener(){publicvoipdate(longpBytesRead,longpContentLength,intpItems){ProcessInfopri=newProcessInfo();pri.itemNum=pItems;pri.readSize=pBytesRead;pri.totalSize=pContentLength;pri.show=pBytesRead+"/"+pContentLength+"byte";pri.rate=Math.round(newFloat(pBytesRead)/newFloat(pContentLength)*100);hs.setAttribute("proInfo",pri);}});Listitems=upload.parseRequest(request);//Parsetherequest//Processtheuploadeditems//Iteratoriter=items.iterator();//while(iter.hasNext()){//FileItemitem=(FileItem)iter.next();//if(item.isFormField()){//Stringname=item.getFieldName();//Stringvalue=item.getString();//System.out.println("thisiscommonfeild!"+name+"="+value);//}else{//System.out.println("thisisfilefeild!");//StringfieldName=item.getFieldName();//StringfileName=item.getName();//StringcontentType=item.getContentType();//booleanisInMemory=item.isInMemory();//longsizeInBytes=item.getSize();//FileuploadedFile=newFile("c://"+fileName);//item.write(uploadedFile);//}//}returnmv;}/***process获取进度*@paramrequest*@paramresponse*@return*@throwsException*/@RequestMapping(value="/process.json",method=RequestMethod.GET)@ResponseBodypublicObjectprocess(HttpServletRequestrequest,HttpServletResponseresponse)throwsException{return(ProcessInfo)request.getSession().getAttribute("proInfo");}classProcessInfo{publiclongtotalSize=1;publiclongreadSize=0;publicStringshow="";publicintitemNum=0;publicintrate=0;}}

『玖』 救火,如何用JAVA实现FTP多文件上传

新建一个web工程,用来测试上传功能。搭建好从前台访问后台的整个框架,并测试是否能接受参数。从apache官网上下载jar包,这里我们需要的jar包共三个,从官网或者其他途径都可以下载得到。编写上传的工具类。工具类主要是涉及两个方法,首先是连接服务器的方法。和我们平常常用的连接数据库等的方法类似,需要有服务器名,用户名和密码。第二个主要的方法就是上传的方法,上传的方法接受一个文件,这里需要注意的,需要去判断传入的是一个文件还是一个文件夹,如果是文件夹,需要循环进行文件上传处理。写方法调用工具类里的方法,并测试上传功能。这里需要注意的是连接服务器的端口号,20表示连接服务器,21表示有上传操作。

未经允许不得转载:山九号 » java多文件上传|java多文件上传显示进度条

赞 (0)