当前位置:编程学习 > JAVA >>

急急急!如何获取上传文件在客户端的路径!在线等!

我要实现的是 将客户端的EXCEL文件上传 再导入进数据库
解析EXCEL文件的代码已经写好了 需要一个绝对路径,但是上传文件该如何获取在客户端的路径,查了很久,解决不了。
求助!
--------------------编程问答-------------------- 你要获取客户端的路径?

如果是struts 的话你可以用他自带的上传,

如果是servlet的话,就自己写一个上传不用获取客户端的路径。

package com.zuxia.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.struts2.ServletActionContext;

public class FileUploadAction {

// 定义属性
private File[] upload;// 内容

private String[] uploadFileName;// 文件名

private String[] uploadContentType;// 文件的类型



public File[] getUpload() {
return upload;
}



public void setUpload(File[] upload) {
this.upload = upload;
}



public String[] getUploadFileName() {
return uploadFileName;
}



public void setUploadFileName(String[] uploadFileName) {
this.uploadFileName = uploadFileName;
}



public String[] getUploadContentType() {
return uploadContentType;
}



public void setUploadContentType(String[] uploadContentType) {
this.uploadContentType = uploadContentType;
}



public void upload() {

for(int i=0;i<upload.length;i++){

// 需要手动的读写文件
FileInputStream fin = null;
FileOutputStream fout = null;
try {

// 读取文件的
fin = new FileInputStream(upload[i]);

// 写入文件的位置
fout = new FileOutputStream(new File(ServletActionContext
.getServletContext().getRealPath("/")
+ "upload/" + uploadFileName[i]));

// 一边读一边写
byte[] data = new byte[1024];
// read(data);//表示读取数据到字节数组中,并且返回读取的个数;如果小于0表示没有读取到数据(已经到达末尾)
int count = 0;
while ((count = fin.read(data)) > 0) {
fout.write(data, 0, count);
}
} catch (Exception e) {
e.printStackTrace();
} finally {

if (fin != null){
try {
fin.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

if (fout != null) {
try {
fout.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

}



System.out.println("上传成功!");
}
}


--------------------编程问答-------------------- 我用的是spring mvc 
就是要获取客户端的路径 --------------------编程问答-------------------- 你应该是让用户去他本机上选择的excel文件吧,这样你的页面上不就获取到了用户文件的路径,传递给后台不就可以了。 --------------------编程问答--------------------
引用 3 楼  的回复:
你应该是让用户去他本机上选择的excel文件吧,这样你的页面上不就获取到了用户文件的路径,传递给后台不就可以了。


是的 就是让用户选择文件  那你的意思是要把文件写到服务器端 再进行操作了?
那我现在的情况是本机做的项目,想说只要获取路径 就可以了。 --------------------编程问答-------------------- LZ啊 。不知道你在纠结什么。你的意思是说你这个项目不会放到web环境上。只有自己在本机访问?那你直接把前台的绝对路径传到后台不就可以了吗? --------------------编程问答-------------------- js能搜本地磁盘么,没试过。如果能的话,可以根据文件名搜一下,然后用ajax或表单提交传到服务端。 --------------------编程问答--------------------
引用 5 楼  的回复:
LZ啊 。不知道你在纠结什么。你的意思是说你这个项目不会放到web环境上。只有自己在本机访问?那你直接把前台的绝对路径传到后台不就可以了吗?

擦。我也觉得我很纠结。直接传个路径的话,我是IE9 我在JSP页面是用file  在JS中document.getElementById("file").value 弹出框是显示c:\fakepath\xxxx.xls 而我的文件是放在D盘的,那请问如何获取路径呢。 --------------------编程问答-------------------- 如果用一个smartUp上传插件的话,导入smartup包,然后直接在表达<input type="file">
吧表单提交到一个JSP页面,然后,new smartUp().getFiles().getFile(0).getPath/getFileNAme/获取后缀,什么的都有
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,