java怎么实现文件上传|Java中获得同名file的文件名称和内容并上传附件请问老师怎么实现的

java怎么实现文件上传|Java中获得同名file的文件名称和内容并上传附件请问老师怎么实现的的第1张示图

1. java代码怎么实现在linux系统上上传文件到windows服务器上

一般linux下传输文件到windows,直接用发ftp就行,具体操作1、在windows下,点开始按钮,选:运行,进入DOS2、在dos下面输入ftp192.168.1.1(liunx服务器IP地址)然后提示输入,用户名,密码进入linux服务器的FTP>界面,此时输入binary(binary是安全传输方式)3、此时输入cd/usr(用cd命令切换到相应传输目录)4输入getfind(要传输的文件)搞定

2. 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能获取一个输出流。

3. 如何实现java 流式文件上传

@Controllerpublic class UploadController extends BaseController { private static final Log log = LogFactory.getLog(UploadController.class); private UploadService uploadService; private AuthService authService; /** * 大文件分成小文件块上传,一次传递一块,最后一块上传成功后,将合并所有已经上传的块,保存到File Server * 上相应的位置,并返回已经成功上传的文件的详细属性. 当最后一块上传完毕,返回上传成功的信息。此时用getFileList查询该文件, * 该文件的uploadStatus为2。client请自行处理该状态下文件如何显示。(for UPS Server) * */ @RequestMapping("/core/v1/file/upload") @ResponseBody public Object upload(HttpServletResponse response, @RequestParam(value = "client_id", required = false) String appkey, @RequestParam(value = "sig", required = false) String appsig, @RequestParam(value = "token", required = false) String token, @RequestParam(value = "uuid", required = false) String uuid, @RequestParam(value = "block", required = false) String blockIndex, @RequestParam(value = "file", required = false) MultipartFile multipartFile, @RequestParam Map<String, String> parameters) { checkEmpty(appkey, BaseException.ERROR_CODE_16002); checkEmpty(token, BaseException.ERROR_CODE_16007); checkEmpty(uuid, BaseException.ERROR_CODE_20016); checkEmpty(blockIndex, BaseException.ERROR_CODE_20006); checkEmpty(appsig, BaseException.ERROR_CODE_10010); if (multipartFile == null) { throw new BaseException(BaseException.ERROR_CODE_20020);// 上传文件不存在 } Long uuidL = parseLong(uuid, BaseException.ERROR_CODE_20016); Integer blockIndexI = parseInt(blockIndex, BaseException.ERROR_CODE_20006); Map<String, Object> appMap = getAuthService().validateSigature(parameters); AccessToken accessToken = CasUtil.checkAccessToken(token, appMap); Long uid = accessToken.getUid(); String bucketUrl = accessToken.getBucketUrl(); // 从上传目录拷贝文件到工作目录 String fileAbsulutePath = null; try { fileAbsulutePath = this.File(multipartFile.getInputStream(), multipartFile.getOriginalFilename()); } catch (IOException ioe) { log.error(ioe.getMessage(), ioe); throw new BaseException(BaseException.ERROR_CODE_20020);// 上传文件不存在 } File uploadedFile = new File(Global.UPLOAD_TEMP_DIR + fileAbsulutePath); checkEmptyFile(uploadedFile);// file 非空验证 Object rs = uploadService.upload(uuidL, blockIndexI, uid, uploadedFile, bucketUrl); setHttpStatusOk(response); return rs; } // TODO 查看下这里是否有问题 // 上传文件非空验证 private void checkEmptyFile(File file) { if (file == null || file.getAbsolutePath() == null) { throw new BaseException(BaseException.ERROR_CODE_20020);// 上传文件不存在 } } /** * 写文件到本地文件夹 * * @throws IOException * 返回生成的文件名 */ private String File(InputStream inputStream, String fileName) { OutputStream outputStream = null; String tempFileName = null; int pointPosition = fileName.lastIndexOf("."); if (pointPosition < 0) {// myvedio tempFileName = UUID.randomUUID().toString();// 94d1d2e0-9aad-4dd8-a0f6-494b0099ff26 } else {// myvedio.flv tempFileName = UUID.randomUUID() + fileName.substring(pointPosition);// 94d1d2e0-9aad-4dd8-a0f6-494b0099ff26.flv } try { outputStream = new FileOutputStream(Global.UPLOAD_TEMP_DIR + tempFileName); int readBytes = 0; byte[] buffer = new byte[10000]; while ((readBytes = inputStream.read(buffer, 0, 10000)) != -1) { outputStream.write(buffer, 0, readBytes); } return tempFileName; } catch (IOException ioe) { // log.error(ioe.getMessage(), ioe); throw new BaseException(BaseException.ERROR_CODE_20020);// 上传文件不存在 } finally { if (outputStream != null) { try { outputStream.close(); } catch (IOException e) { } } if (inputStream != null) { try { inputStream.close(); } catch (IOException e) { } } } } /** * 测试此服务是否可用 * * @param response * @return * @author zwq7978 */ @RequestMapping("/core/v1/file/testServer") @ResponseBody public Object testServer(HttpServletResponse response) { setHttpStatusOk(response); return Global.SUCCESS_RESPONSE; } public UploadService getUploadService() { return uploadService; } public void setUploadService(UploadService uploadService) { this.uploadService = uploadService; } public void setAuthService(AuthService authService) { this.authService = authService; } public AuthService getAuthService() { return authService; } }

4. java怎么用commons-fileupload实现上传文件

文件上传步骤:1.导入jar包common-fileupload.jarcommon-io.jar2.上传jsp页面编辑<body><formaction="${pageContext.request.contextPath}/servlet/UploadHandleServlet"enctype="multipart/form-data"method="post">上传用户:<inputtype="text"name="username"><br/>上传文件1:<inputtype="file"name="file1"><br/>上传文件2:<inputtype="file"name="file2"><br/><inputtype="submit"value="提交"></form></body>3.消息提示页面(成功or失败)<body>${message}</body>4.处理文件上传的servlet编写importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.util.List;importjava.util.UUID;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.commons.fileupload.FileItem;importorg.apache.commons.fileupload.FileUploadBase;importorg.apache.commons.fileupload.ProgressListener;importorg.apache.commons.fileupload.disk.DiskFileItemFactory;importorg.apache.commons.fileupload.servlet.ServletFileUpload;{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全StringsavePath=this.getServletContext().getRealPath("/WEB-INF/upload");//上传时生成的临时文件保存目录StringtempPath=this.getServletContext().getRealPath("/WEB-INF/temp");FiletmpFile=newFile(tempPath);if(!tmpFile.exists()){//创建临时目录tmpFile.mkdir();}//消息提示Stringmessage="";try{//使用Apache文件上传组件处理文件上传步骤://1、创建一个DiskFileItemFactory工厂DiskFileItemFactoryfactory=newDiskFileItemFactory();//设置工厂的缓冲区的大小,当上传的文件大小超过缓冲区的大小时,就会生成一个临时文件存放到指定的临时目录当中。factory.setSizeThreshold(1024*100);//设置缓冲区的大小为100KB,如果不指定,那么缓冲区的大小默认是10KB//设置上传时生成的临时文件的保存目录factory.setRepository(tmpFile);//2、创建一个文件上传解析器ServletFileUploapload=newServletFileUpload(factory);//监听文件上传进度upload.setProgressListener(newProgressListener(){publicvoipdate(longpBytesRead,longpContentLength,intarg2){System.out.println("文件大小为:"+pContentLength+",当前已处理:"+pBytesRead);/***文件大小为:14608,当前已处理:4096文件大小为:14608,当前已处理:7367文件大小为:14608,当前已处理:11419文件大小为:14608,当前已处理:14608*/}});//解决上传文件名的中文乱码upload.setHeaderEncoding("UTF-8");//3、判断提交上来的数据是否是上传表单的数据if(!ServletFileUpload.isMultipartContent(request)){//按照传统方式获取数据return;}//设置上传单个文件的大小的最大值,目前是设置为1024*1024字节,也就是1MBupload.setFileSizeMax(1024*1024);//设置上传文件总量的最大值,最大值=同时上传的多个文件的大小的最大值的和,目前设置为10MBupload.setSizeMax(1024*1024*10);//4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项List<FileItem>list=upload.parseRequest(request);for(FileItemitem:list){//如果fileitem中封装的是普通输入项的数据if(item.isFormField()){Stringname=item.getFieldName();//解决普通输入项的数据的中文乱码问题Stringvalue=item.getString("UTF-8");//value=newString(value.getBytes("iso8859-1"),"UTF-8");System.out.println(name+"="+value);}else{//如果fileitem中封装的是上传文件//得到上传的文件名称,Stringfilename=item.getName();System.out.println(filename);if(filename==null||filename.trim().equals("")){continue;}//注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如:c:a1.txt,而有些只是单纯的文件名,如:1.txt//处理获取到的上传文件的文件名的路径部分,只保留文件名部分filename=filename.substring(filename.lastIndexOf("\")+1);//得到上传文件的扩展名StringfileExtName=filename.substring(filename.lastIndexOf(".")+1);//如果需要限制上传的文件类型,那么可以通过文件的扩展名来判断上传的文件类型是否合法System.out.println("上传的文件的扩展名是:"+fileExtName);//获取item中的上传文件的输入流InputStreamin=item.getInputStream();//得到文件保存的名称StringsaveFilename=makeFileName(filename);//得到文件的保存目录StringrealSavePath=makePath(saveFilename,savePath);//创建一个文件输出流FileOutputStreamout=newFileOutputStream(realSavePath+"\"+saveFilename);//创建一个缓冲区bytebuffer[]=newbyte[1024];//判断输入流中的数据是否已经读完的标识intlen=0;//循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据while((len=in.read(buffer))>0){//使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath+"\"+filename)当中out.write(buffer,0,len);}//关闭输入流in.close();//关闭输出流out.close();//删除处理文件上传时生成的临时文件//item.delete();message="文件上传成功!";}}}catch(FileUploadBase.){e.printStackTrace();request.setAttribute("message","单个文件超出最大值!!!");request.getRequestDispatcher("/message.jsp").forward(request,response);return;}catch(FileUploadBase.SizeLimitExceededExceptione){e.printStackTrace();request.setAttribute("message","上传文件的总的大小超出限制的最大值!!!");request.getRequestDispatcher("/message.jsp").forward(request,response);return;}catch(Exceptione){message="文件上传失败!";e.printStackTrace();}request.setAttribute("message",message);request.getRequestDispatcher("/message.jsp").forward(request,response);}privateStringmakeFileName(Stringfilename){//2.jpg//为防止文件覆盖的现象发生,要为上传文件产生一个唯一的文件名returnUUID.randomUUID().toString()+"_"+filename;}privateStringmakePath(Stringfilename,StringsavePath){//得到文件名的hashCode的值,得到的就是filename这个字符串对象在内存中的地址inthashcode=filename.hashCode();intdir1=hashcode&0xf;//0–15intdir2=(hashcode&0xf0)>>4;//0-15//构造新的保存目录Stringdir=savePath+"\"+dir1+"\"+dir2;//upload23upload35if(!file.exists()){file.mkdirs();}returndir;}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doGet(request,response);}}5.编写web.xml文件(servlet的映射配置)<servlet><servlet-name>UploadHandleServlet</servlet-name><servlet-class>me.gacl.web.controller.UploadHandleServlet</servlet-class></servlet><servlet-mapping><servlet-name>UploadHandleServlet</servlet-name><url-pattern>/servlet/UploadHandleServlet</url-pattern></servlet-mapping>注:网上看到的,出处找不到了,望见谅!!

5. java web怎么实现文件上传到服务器

/*** 上传到本地* @param uploadFile* @param request* @return*/@RequestMapping("/upload")@ResponseBodypublic Map<String, Object> uploadApkFile(@RequestParam("uploadUpdateHistoryName") MultipartFile uploadFile,HttpServletRequest request) {Map<String, Object> map = new HashMap<>();// 上传文件校验,包括上传文件是否为空、文件名称是否为空、文件格式是否为APK。if (uploadFile == null) {map.put("error", 1);map.put("msg", "上传文件不能为空");return map;}String originalFilename = uploadFile.getOriginalFilename();if (StringUtils.isEmpty(originalFilename)) {map.put("error", 1);map.put("msg", "上传文件名称不能为空");return map;}String extName = originalFilename.substring(originalFilename.lastIndexOf(".") + 1);if (extName.toUpperCase().indexOf("APK") < 0) {map.put("error", 1);map.put("msg", "上传文件格式必须为APK");return map;}String path = request.getSession().getServletContext().getRealPath("upload");String fileName = uploadFile.getOriginalFilename();File targetFile = new File(path, fileName);if (!targetFile.exists()) {targetFile.mkdirs();}// 保存String downLoadUrl = null;try {uploadFile.transferTo(targetFile);downLoadUrl = request.getContextPath() + "/upload/" + fileName;map.put("error", 0);map.put("downLoadUrl", downLoadUrl);map.put("msg", "上传文件成功");return map;} catch (Exception e) {e.printStackTrace();map.put("error", 1);map.put("msg", "上传文件失败");return map;}}//上传文件$('#btnUpload').bind('click',function(){//var formdata= $('#uploadForm').serializeJSON();var formdata = new FormData($( "#uploadForm" )[0]);$.ajax({url:"upload.do",data:formdata,async: false, cache: false, processData:false,contentType:false,//dataType:'json',type:'post',success:function(value){if(value.error==0){$('#downLoadUrlId').val(value.downLoadUrl);$.messager.alert('提示',value.msg);$('#uploadWindow').window('close');}else{$.messager.alert('提示',value.msg);}}});});<div id="uploadWindow" class="easyui-window" title="apk上传" style="width: 230px;height: 100px" data-options="closed:true"><form id="uploadForm" enctype="multipart/form-data"><td><input type ="file" style="width:200px;" name = "uploadUpdateHistoryName"></td> </form><button id="btnUpload" type="button">上传Apk</button></div>java js html

6. Java中,获得同名file的文件名称和内容并上传附件,请问老师怎么实现的

这个你可以这样实现,你在页面写一个<inputtype="hidden"name="files"id="files">,然后在你选择文件的时候,每选版择一个,就把这个文件的名字权加到这个files中,用,号隔开,这样就会有一个files=filename1,filenam2,filename3,filename4这样你在后台获取files,然后用,号分割,就可以获取每个附件了多个附件上传就是这样做的

7. Java 批量大文件上传下载如何实现

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

8. java中怎么把文件上传到服务器的指定路径

文件从本地到服务器的功能,其实是为了解决目前浏览器不支持获取本地文件全路径。不得已而想到上传到服务器的固定目录,从而方便项目获取文件,进而使程序支持EXCEL批量导入数据。

java中文件上传到服务器的指定路径的代码:

在前台界面中输入:

<form method="post" enctype="multipart/form-data" action="../manage/excelImport.do">

请选文件:<input type="file" name="excelFile">

<input type="submit" value="导入" onclick="return impExcel();"/>

</form>

action中获取前台传来数据并保存

/**

* excel 导入文件

* @return

* @throws IOException

*/

@RequestMapping("/usermanager/excelImport.do")

public String excelImport(

String filePath,

MultipartFile excelFile,HttpServletRequest request) throws IOException{

log.info("<<<<<<action:{} Method:{} start>>>>>>","usermanager","excelImport" );

if (excelFile != null){

String filename=excelFile.getOriginalFilename();

String a=request.getRealPath("u/cms/www/201509");

SaveFileFromInputStream(excelFile.getInputStream(),request.getRealPath("u/cms/www/201509"),filename);//保存到服务器的路径

}

log.info("<<<<<<action:{} Method:{} end>>>>>>","usermanager","excelImport" );

return "";

}

/**

* 将MultipartFile转化为file并保存到服务器上的某地

*/

public void SaveFileFromInputStream(InputStream stream,String path,String savefile) throws IOException

{

FileOutputStream fs=new FileOutputStream( path + "/"+ savefile);

System.out.println("————"+path + "/"+ savefile);

byte[] buffer =new byte[1024*1024];

int bytesum = 0;

int byteread = 0;

while ((byteread=stream.read(buffer))!=-1)

{

bytesum+=byteread;

fs.write(buffer,0,byteread);

fs.flush();

}

fs.close();

stream.close();

}

未经允许不得转载:山九号 » java怎么实现文件上传|Java中获得同名file的文件名称和内容并上传附件请问老师怎么实现的

赞 (0)