文件管理 · 2024年8月21日

java文件上传时指定路径|如何用java程序实现上传文件到指定的URL地址

⑴ 如何用java程序实现上传文件到指定的URL地址

参考代码如下:import java.io.*; /** * 复制文件夹或文件夹 */ public class CopyDirectory { // 源文件夹 static String url1 = "f:/photos"; // 目标文件夹 static String url2 = "d:/tempPhotos"; public static void main(String args[]) throws IOException { // 创建目标文件夹 (new File(url2)).mkdirs(); // 获取源文件夹当前下的文件或目录 File[] file = (new File(url1)).listFiles(); for (int i = 0; i < file.length; i++) { if (file[i].isFile()) { // 复制文件 File(file[i],new File(url2+file[i].getName())); } if (file[i].isDirectory()) { // 复制目录 String sourceDir=url1+File.separator+file[i].getName(); String targetDir=url2+File.separator+file[i].getName(); Directiory(sourceDir, targetDir); } } } // 复制文件 public static void File(File sourceFile,File targetFile) throws IOException{ // 新建文件输入流并对它进行缓冲 FileInputStream input = new FileInputStream(sourceFile); BufferedInputStream inBuff=new BufferedInputStream(input); // 新建文件输出流并对它进行缓冲 FileOutputStream output = new FileOutputStream(targetFile); BufferedOutputStream outBuff=new BufferedOutputStream(output); // 缓冲数组 byte[] b = new byte[1024 * 5]; int len; while ((len =inBuff.read(b)) != -1) { outBuff.write(b, 0, len); } // 刷新此缓冲的输出流 outBuff.flush(); //关闭流 inBuff.close(); outBuff.close(); output.close(); input.close(); } // 复制文件夹 public static void Directiory(String sourceDir, String targetDir) throws IOException { // 新建目标目录 (new File(targetDir)).mkdirs(); // 获取源文件夹当前下的文件或目录 File[] file = (new File(sourceDir)).listFiles(); for (int i = 0; i < file.length; i++) { if (file[i].isFile()) { // 源文件 File sourceFile=file[i]; // 目标文件 File targetFile=new File(new File(targetDir).getAbsolutePath() +File.separator+file[i].getName()); File(sourceFile,targetFile); } if (file[i].isDirectory()) { // 准备复制的源文件夹 String dir1=sourceDir + "/" + file[i].getName(); // 准备复制的目标文件夹 String dir2=targetDir + "/"+ file[i].getName(); Directiory(dir1, dir2); } } } }

⑵ 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上传图片到服务器指定路径

privateFilemyFile;//文件;//类型privateStringmyFileFileName;//文件名//。。。。getXXX()setXXX()方法//输入流InputStreamis=newFileInputStream(myFile);//设定文件路径StringphotoPath=ServletActionContext.getServletContext().getRealPath("/user/photo/");FilefilePhotoPath=newFile(photoPath);//判断这个路径是否存在,如果不存在创建这个路径if(!filePhotoPath.isDirectory()){filePhotoPath.mkdir();}Stringextension=FilenameUtils.getExtension(this.getMyFileFileName());//后缀名比如jpgStringfilename=UUID.randomUUID().toString()+"."+extension;//目标文件Filetofile=newFile(photoPath,filename);//输出流OutputStreamos=newFileOutputStream(tofile);byte[]buffer=newbyte[1024];intlength=0;while((length=is.read(buffer))>0){os.write(buffer,0,length);}//关闭输入流is.close();//关闭输出流os.close();

⑷ 在Java项目中上传图片时如何使上传的图片自动保存到指定路径

用struts也可以实现 多文件上传下面是我写的代码,参数中有要保存的目录 作为参考!/*文件目录*/ public static String [] fileArray={ "logo.png", "index.swf", "OEMInfo.txt", "favicon.ico"};/** * @author Caoshun * @see 接收并保存文件 * */ public static void receiveAndSaveAllFileByPath(ActionForm form,String rootPath1,String rootPath2){ String fileName=""; //获取表单中的文件资源 Hashtable<Object, Object> files = form.getMultipartRequestHandler().getFileElements(); //遍历文件,并且循环保存 //当前处理文件序号 int file_num=1; for (Enumeration<Object> e = files.keys(); e.hasMoreElements();) { /*根据处理的当前文件下标,确定文件名*/ fileName=fileArray[file_num-1]; FormFile file = (FormFile) files.get((String) e.nextElement()); if (file != null && file.getFileSize() > 0) { try { //使用formfile.getInputStream()来获取一个文件的输入流进行保存。 //文件名 //String fileName = file.getFileName(); //System.out.println("debug in AddEnterpriceAction.java on line 152 fileName is : "+fileName); //文件大小 //int fileSize = file.getFileSize(); //文件流 InputStream is = file.getInputStream(); //将输入流保存到文件 //String rootPath = this.servlet.getServletContext().getRealPath("files"); //往cn中写入 File rf = new File(rootPath1); FileOutputStream fos = null; fos = new FileOutputStream(new File(rf, fileName)); byte[] b = new byte[10240]; int real = 0; real = is.read(b); while (real > 0) { fos.write(b, 0, real); real = is.read(b); } //往en中写入 File rf2 = new File(rootPath2); InputStream is2 = file.getInputStream(); FileOutputStream fos2 = null; fos2 = new FileOutputStream(new File(rf2, fileName)); byte[] b2 = new byte[10240]; int real2 = 0; real2 = is2.read(b2); while (real2 > 0) { fos2.write(b2, 0, real2); real2 = is2.read(b2); } //关闭文件流 fos.close(); is.close(); fos2.close(); is2.close(); } catch (RuntimeException e1) { e1.printStackTrace(); } catch (Exception ee) { ee.printStackTrace(); } file.destroy(); } file_num++; } }

⑸ java 将浏览的图片上传到一个指定路径的目录中..

//新建一个Smartupload对象 SmartUpload su=new SmartUpload(); //上传初始化 su.initialize(pageContext); //设定上传限度 //1.限定每个上传文件的最大长度 //su.setMaxFileSize(100000); //2.限制总上传数据的长度。 //su.setTotalMaxFileSize(20000); //3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。 //su.setAllowFilesList("doc,text"); //4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,jsp,htm,html扩展名的文件或没有扩展名的文件 //su.setDeniedDilesList("exe,bat,jsp,html,htm,,"); //上传文件 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>表单项名(FiledName)</td><td>"+file.getFieldName()+"</tr></tr>"); out.println("<tr><td>文件长度(Size)</td><td>"+file.getSize()+"</td><td>"); out.println("<tr><td>文件名(FileName)</td><td>"+file.getFileName()+"</tr></tr>"); out.println("<tr><td>文件扩展名(FiledExt)</td><td>"+file.getFileExt()+"</tr></tr>"); out.println("<tr><td>文件全名(FiledPathName)</td><td>"+file.getFilePathName()+"</tr></tr>"); out.println("</table><br>"); //将文件另存 //file.saveAs("/upload/"+myFile.getFileName()); //另存到以web应用程序的根目录为文件根目录的目录下 //file.saveAs("/upload/"+myFile.getFileName(),su.SAVE_VIRTUAL); //另存到操作系统的根目录为文件根目录的目录下 //file.safeAs("c://temp//"+myFile.getFileName(),su.SAVE_PHYSICAL); } 只用修改相应的路径 祝你好运!!!

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

Stringrealpath=ServletActionContext.getServletContext().getRealPath("/upload");//获取服务器路径String[]targetFileName=uploadFileName;for(inti=0;i<upload.length;i++){Filetarget=newFile(realpath,targetFileName[i]);FileUtils.File(upload[i],target);//这是一个文件复制类()里面就是IO操作,如果你不用这个类也可以自己写一个IO复制文件的类}其中privateFile[]upload;//实际上传文件privateString[]uploadContentType;//文件的内容类型privateString[]uploadFileName;//上传文件名这三个参数必须这样命名,因为文件上传控件默认是封装了这3个参数的,且在action里面他们应有get,set方法!