首页>>后端>>SpringBoot->Java上传文件夹(java实现文件上传到服务器)

Java上传文件夹(java实现文件上传到服务器)

时间:2023-12-05 本站 点击:0

java怎么把文件上传到项目指定文件夹中?知道的私聊我,奖励大大的

代码如下:

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()) {

// 复制文件

copyFile(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();

copyDirectiory(sourceDir, targetDir);

}

}

}

// 复制文件

public static void copyFile(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 copyDirectiory(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());

copyFile(sourceFile,targetFile);

}

if (file[i].isDirectory()) {

// 准备复制的源文件夹

String dir1=sourceDir + "/" + file[i].getName();

// 准备复制的目标文件夹

String dir2=targetDir + "/"+ file[i].getName();

copyDirectiory(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上传到指定文件夹问题

servlet类

package org.whatisjava.servlet;

import java.io.File;

import java.io.IOException;

import java.util.List;

import javax.servlet.ServletContext;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class UploadServlet extends HttpServlet {

public void service(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

try {

// 用于设此灶正定诸如缓存之类的参数,和性能相辩锋关

// 此处用默认设定

DiskFileItemFactory dfif = new DiskFileItemFactory();

// 解析表单中的数据

ServletFileUpload upload = new ServletFileUpload(dfif);

upload.setSizeMax(10 * 1024 * 1024); // 允许上传的最大值

List list = upload.parseRequest(request); // 开始解析request对象中的表单数据

// list中是FileItem对象

// 一个FileItem用于封装一个上传的文件数据

if (list.size() = 1) {

FileItem item = (FileItem) list.get(0);

// 获得上文件的森悔路径名

String name = item.getName();

name = name.substring(name.lastIndexOf("\\") + 1);

// 把上传的文件数据写入本地文(服务器端)件文件夹的名字为upload

String path = "upload";

// Sun的标准,服务器实现的API

ServletContext ctx = this.getServletContext();

path = ctx.getRealPath(path);

File file = new File(path);

if(!file.exists()){

System.out.println("创建文件夹");

file.mkdir();

}

System.out.println(path);

System.out.println(name);

//将文件放到指定的地方

item.write(new File(path, name));

response.sendRedirect("upload_form.jsp");

}

} catch (Exception e) {

throw new ServletException("file upload error!", e);

}

}

}

页面form action="upload" method="post" enctype="multipart/form-data"

table cellpadding="0" cellspacing="0" border="0"

class="form_table"

tr

td valign="middle" align="right"

上传

/td

td valign="middle" align="left"

input type="file" class="inputgri" name="file1" /

/td

/tr

/table

p

input type="submit" class="button" value="提交 »" /

/p

/form

web.xml

servlet

servlet-nameUploadServlet/servlet-name

servlet-class

org.whatisjava.servlet.UploadServlet

/servlet-class

/servlet

servlet-mapping

servlet-nameUploadServlet/servlet-name

url-pattern/upload/url-pattern

/servlet-mapping

jar包

commons-io-1.3.2.jar

commons-fileupload-1.2.1.jar

commons-fileupload-1.2.1-javadoc.jar

commons-fileupload-1.2.1-sources.jar


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/SpringBoot/12737.html