导航:首页 > 文件教程 > java获取上传文件路径

java获取上传文件路径

发布时间:2022-12-23 00:43:28

1. javajs(可用jquery)如何获取上传文件原始路径名

上传文件时,我想获取客户端上传文件的原始路径。第一考虑,当然是使用js,例如网上可以找到的: function getPath(obj) { if (obj) { if (window.navigator.userAgent.indexOf("MSIE") >= 1) { obj.select(); return document.selection.createRange().text; } else if (window.navigator.userAgent.indexOf("Firefox") >= 1) { if (obj.files) { return obj.files.item(0).getAsDataURL(); } return obj.value; } return obj.value; } } 但这样的代码在Ie下还是可行的,但在火狐下不兼容。所以又想通过servlet的第三方工具去做,例如FileUpload,本以为FileItem下的getName()方法能够得到全路径名,但结果仍然只得到文件名,很是杯具!求解决方法!? 引用<input type="file" name="file" />至于你说的,不明白你的意思关键问题是我要获得这个路径,并且传递到后台!用js会有兼容性问题,如果用FileUpload上传,是否可以获得呢?我是没有得到的!!! 问题补充:zhanjia 写道上传文件一般用input标签,type为file,浏览选择文件后就是文件在本地的绝对路径了 引用<input type="file" name="file" />至于你说的,不明白你的意思关键的问题是我要获得这个本地路径,并且传到后台!用js可以得到,但存在兼容性问题!?如果用FileUpload呢?我暂时还没有得到!!! 问题补充:zhanjia 写道网上的一些解决方案: 一般都是上传以后在数据库中保存上传后的文件路径,本地路径一般没意义 除非像上面所说的文件上传预览,还有那么点用处 我用来做数据接口的,我仅仅是把路径传给另一个系统,然后那个系统就可以从这个路径取文件了。如果先上传一次,再给对方,这样不但影响上传速度,而且会产生大量的垃圾文件。

2. java中文件上传 new File(文件路径)问题

通过 ”new FileInputStream(文件路径)“的形式进行上传即可。举例:
/**
* 加密文件
*
* @param fileName
* @param date
* @param plainFilePath 明文文件路径路径
* @param filepath
* @return
* @throws Exception
*/
public static String encodeAESFileUploadByFtp(String plainFilePath, String fileName, String date,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("加密上传文件开始");
byte[] bytes = encodeAES(key, bos.toByteArray());
ByteArrayInputStream is = new ByteArrayInputStream(bytes);
Log.info("连接远程上传服务器"+CMBCUtil.CMBCHOSTNAME+":"+2021);
ftpClient.connect(CMBCUtil.CMBCHOSTNAME, 2021);
ftpClient.login(CMBCUtil.CMBCLOGINNAME, CMBCUtil.CMBCLOGINPASSWORD);
// Log.info("连接远程上传服务器"+"192.168.54.106:"+2021);
// ftpClient.connect("192.168.54.106", 2021);
// ftpClient.login("hkrt-CMBCHK", "3OLJheziiKnkVcu7Sigz");
FTPFile[] fs;
fs = ftpClient.listFiles();
for (FTPFile ff : fs) {
if (ff.getName().equals(filepath)) {
bl="true";
ftpClient.changeWorkingDirectory("/"+filepath+"");
ftpClient.makeDirectory(date);
ftpClient.changeWorkingDirectory("/"+filepath+"/" + date);
}
}
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, is);
Log.info("加密上传文件成功:"+fileName+"。文件保存路径:"+"/"+filepath+"/" + date);
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);
}
}
}

}

3. java web项目java后台获取前台js上传文件的路径

如果通过servelet来读取上传文件路径,则代码如下,我已经在项目中用过了:

DiskFileItemFactorydifif=newDiskFileItemFactory();
difif.setSizeThreshold(32*1024);difif.setRepository(newFile(tmpDir));//
用以上工厂实例化上传组件ServletFileUploadsfu=newServletFileUpload(difif);
sfu.setSizeMax(MAX_SIZE);
ListfileList=sfu.parseRequest(request);
if(fileList==null||fileList.size()==0){thrownewException("
导入文件不存在,请检
查");}else{FileupLoadFile=null;IteratorfileIterator=fileList.iterator();
//得到所有上传的文
件while(fileIterator.hasNext()){FileItemfileItem=(FileItem)fileIterator.next();//
取得上传文件
名if(fileItem.getContentType()==null){}else{
//
此为路
径Stringpath=fileItem.getName();Stringt_ext=path.substring(path.lastIndexOf(".")+1);//
根据系统时间生成上传后保存的文件
名Stringprefix=String.valueOf(System.currentTimeMillis());//
保存最终的文件完整路径,保存在工程根目录下的Upload目录
下Stringu_name=tmpDir+File.separator+prefix+"."+t_ext;//
开始保存文
件upLoadFile=newFile(u_name);fileItem.write(upLoadFile);}}}

4. JAVA如何获取上传后的文件名

同意楼上的分析,另外我想提个建议,代码为了便于阅读可以试着分步骤写。
就先专定义filename和filepath,然后你属在后续的操作中想要图片出现在设定的某一区域中
就可以直接使用filename,将要上传的文件名是 its.getIPTimeStampRand()+"."+item.getName().split("\\.")[1]

5. Java文件上传获取多个文件路径怎么取值

换多个name接收啊 要么JS提交他的值作为代表地址字符串数组 到后面去new file

6. java ,SmartUpload上传文件后怎么把上传到服务器上的文件路径写入数据库

上传文件时,需要给SmartUpload传一个上传文件的保存地址,一般都用一个String来表示,使用request来获得。比如,你要把文件保存在项目路径下的upload文件夹,刚:
String
path
=
request.getRealPath("upload");//获取upload文
//夹的绝对路径。
//得到:c:/......./项目名/upload/
然后再拼上你的文件名,比如你上传一个叫test.txt的文件,则全部的URL为:
path
+
fileName
=
"c://......../项目名/upload/"+"text.txt";
在实际的编程中,其实数据库只需要保存fileName就可以了,path作为配置,每次系统加载时再去读取,这样做的好处是:系统的环境变化时,只需要修改配置文件就能够搞定,而且不会重复保存多余的路径(因为路径都是一样的)

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

}

8. java获得上传文件的路径

可以通过方法切换上传路径来进行文件上传。
上传方法举例:
/**
* 上传文件
*
* @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获取上传文件路径相关的资料

热点内容
pc共享网络给电脑 浏览:796
linuxkill重启进程 浏览:658
sketchup景观教程 浏览:730
win10管理找不到模块 浏览:472
苹果手机查看电脑文件 浏览:61
微信不访问视频文件夹吗 浏览:259
文件夹加密大师注册码 浏览:1
onedrive怎么上传文件 浏览:488
android多线程写文件栈溢出 浏览:242
台电酷闪量产工具 浏览:837
如何破坏文件 浏览:15
从什么网站上查找国家标准 浏览:254
iphone5s最省电的浏览器 浏览:225
用数据线如何接摄像头 浏览:110
qq手机电脑互传文件 浏览:613
linux内核升级方法 浏览:986
iphone5没有热点 浏览:189
哪里有在线幼儿c语言编程 浏览:959
iframe跨域调用js对象 浏览:178
苹果手机能分文件夹吗 浏览:679

友情链接