java 上传文件的时候获取客户端的路径
展开全部
除了IE浏览器可以获取的到客户端文件路径,其余的所有浏览器都是不支持此功能的。所以现在这个功能是不被认可的。
解释:上传文件的时候如果浏览器直接读取客户端的文件路径,存在一定的安全隐患的,很容易遭到木马或者是应用程序的恶意窜改,所以现在已经不被支持了,建议通过io的形式进行实现。
解释:上传文件的时候如果浏览器直接读取客户端的文件路径,存在一定的安全隐患的,很容易遭到木马或者是应用程序的恶意窜改,所以现在已经不被支持了,建议通过io的形式进行实现。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般不建议你这么做的,你在浏览的网页上传文件的时候也不希望自己上传的绝对路径暴露到人家的服务器端把
<input file>或者是<s:file>之类的标签根本不要你自己考虑文件的地址,取出来的就是文件名, 保存到服务器的路径才要你自己设定
<input file>或者是<s:file>之类的标签根本不要你自己考虑文件的地址,取出来的就是文件名, 保存到服务器的路径才要你自己设定
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/**
*
*/
private static final long serialVersionUID = 1L;
private File doc;
private String fileName;
private String contentType;
private String dir;
private String targetFileName;
public void setDoc(File file) {
this.doc = file;
}
public void setDocFileName(String fileName) {
this.fileName = fileName;
}
public void setDocContentType(String contentType) {
this.contentType = contentType;
}
@SuppressWarnings("deprecation")
@Override
public String execute() throws Exception {
String realPath = ServletActionContext.getRequest().getRealPath(
"/upload");
String targetDirectory = realPath;
targetFileName = generateFileName(fileName);
setDir(targetDirectory + "\\" + targetFileName);
File target = new File(targetDirectory, targetFileName);
FileUtils.copyFile(doc, target);
return SUCCESS;
}
private String generateFileName(String fileName) {
DateFormat format = new SimpleDateFormat("yyMMddHHmmss");
String formatDate = format.format(new Date());
int random = new Random().nextInt(10000);
int position = fileName.lastIndexOf(".");
String extension = fileName.substring(position);
return formatDate + random + extension;
}
public String getContentType() {
return contentType;
}
public void setContentType(String contentType) {
this.contentType = contentType;
}
public String getDir() {
return dir;
}
public void setDir(String dir) {
this.dir = dir;
}
public String getTargetFileName() {
return targetFileName;
}
public void setTargetFileName(String targetFileName) {
this.targetFileName = targetFileName;
}
里面是整个文件上传操作,你看看吧!
*
*/
private static final long serialVersionUID = 1L;
private File doc;
private String fileName;
private String contentType;
private String dir;
private String targetFileName;
public void setDoc(File file) {
this.doc = file;
}
public void setDocFileName(String fileName) {
this.fileName = fileName;
}
public void setDocContentType(String contentType) {
this.contentType = contentType;
}
@SuppressWarnings("deprecation")
@Override
public String execute() throws Exception {
String realPath = ServletActionContext.getRequest().getRealPath(
"/upload");
String targetDirectory = realPath;
targetFileName = generateFileName(fileName);
setDir(targetDirectory + "\\" + targetFileName);
File target = new File(targetDirectory, targetFileName);
FileUtils.copyFile(doc, target);
return SUCCESS;
}
private String generateFileName(String fileName) {
DateFormat format = new SimpleDateFormat("yyMMddHHmmss");
String formatDate = format.format(new Date());
int random = new Random().nextInt(10000);
int position = fileName.lastIndexOf(".");
String extension = fileName.substring(position);
return formatDate + random + extension;
}
public String getContentType() {
return contentType;
}
public void setContentType(String contentType) {
this.contentType = contentType;
}
public String getDir() {
return dir;
}
public void setDir(String dir) {
this.dir = dir;
}
public String getTargetFileName() {
return targetFileName;
}
public void setTargetFileName(String targetFileName) {
this.targetFileName = targetFileName;
}
里面是整个文件上传操作,你看看吧!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询