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

java中怎么把文件上传到服务器的指定路径,第1张

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

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

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

在前台界面中输入:

<form method="post" enctype="multipart/form-data"  action="/manage/excelImportdo">

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

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

</form>

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

/

excel 导入文件

@return

@throws IOException

/

@RequestMapping("/usermanager/excelImportdo")

public String excelImport(

String filePath,

MultipartFile  excelFile,>

loginfo("<<<<<<action:{} Method:{} start>>>>>>","usermanager","excelImport" );

if (excelFile != null){

String filename=excelFilegetOriginalFilename();

String a=requestgetRealPath("u/cms/>

SaveFileFromInputStream(excelFilegetInputStream(),requestgetRealPath("u/cms/>

}

loginfo("<<<<<<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);

Systemoutprintln("------------"+path + "/"+ savefile);

byte[] buffer =new byte[10241024];

int bytesum = 0;

int byteread = 0;

while ((byteread=streamread(buffer))!=-1)

{

bytesum+=byteread;

fswrite(buffer,0,byteread);

fsflush();

}

fsclose();

streamclose();

}

Java中可以根据平台来判断路径的分隔符的\x0d\通常使用\\或/,也可以使用Fileseparator一般我在写路径时经常用/\x0d\\x0d\5取得服务器相对路径\x0d\SystemgetProperty("userdir")\x0d\例如:E:\apache-tomcat-5516\apache-tomcat-5516\bin\x0d\可以百度一下Java路径路径分隔符

String extend = workergetPhoto()substring(workergetPhoto()
lastIndexOf(""));
// 文件的扩展名
            String folder = "/" + GlobeUPLOAD_FOLDER + "/" + workergetUser()getUserName() + "/" + GlobeWORKER_FOLDER + "/";
            // 存放上传文件的目录
            webfilecreateFolder(getBase(request) + folder);
            // 创建文件夹,getBase(request);获得项目的物理路径(在磁盘中的位置)
            String imgPath = folder + webtoolgetNowDate(2) + extend;// 产生新的相对路径(不带盘符的)
            webfilecopyFile(getBase(request) + workergetPhoto(), getBase(request) + imgPath);// 上传文件(这里只是复制了,因为上传的事情之前已经完成了)
            workersetPhoto(imgPath);
            // 这个路径是插入数据库的
            worker = workerDaoadd(worker);
            // 给数据库插入一条记录

查询的时候就能获取插入数据库的路径了。

不知道你是不是想得到某一文件夹的所有文件,如果是,可以试试下面的代码:
string Folder = ServerMapPath("~/YourFolder/");
SystemIODirectoryInfo oDir = new SystemIODirectoryInfo(Folder);
SystemIOFileInfo[] aFiles = oDirGetFiles();
for (int i = 0; i < aFilesLength; i++)
{
ResponseWrite("文件路径:" + aFiles[i]FullName + "<br />");
}

1开发环境及框架的搭建。(基于SSH开发框架)
2数据库建表,表应该有一个字段用来存储文件在服务区上的存储路径。
3mapxml文件
4Actionxml文件
5写好实体类及get()set()方法
6DAO层
7Action()实现,Action()里面需要实现文件的上传服务器功能和路径存储数据库功能。
8前端页面,前端页面需要实现文件的选择功能。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13053518.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-30
下一篇 2023-05-30

发表评论

登录后才能评论

评论列表(0条)

保存