ENCTYPE="multipart/form-data ">使用后上传的文件格式变成了tmp???
ENCTYPE="multipart/form-data">使用后上传的文件格式变成了tmp???去掉这个2进制参数后文件上传什么格式就是什么格式,加上后都变成了tmp格...
ENCTYPE="multipart/form-data ">使用后上传的文件格式变成了tmp???
去掉这个2进制参数 后文件上传什么格式 就是什么格式,加上后 都变成了
tmp格式???
不明白,请大虾赐教!
代码如下:
页面:
<form id="searchForm" name="searchForm" method="post" action="${contextPath}/portal/up/upload.py" enctype="multipart/form-data">
<input type="file" name="imgFileFileName">
标题:<input type="text" name="caption"/>
<input type="submit" name="提交" value="tijiao "/>
</form>
Action:
private static void copy(File src, File dst) {
try {
InputStream in = null ;
OutputStream out = null ;
try {
in = new BufferedInputStream( new FileInputStream(src), BUFFER_SIZE);
out = new BufferedOutputStream( new FileOutputStream(dst), BUFFER_SIZE);
byte [] buffer = new byte [BUFFER_SIZE];
while (in.read(buffer) > 0 ) {
out.write(buffer);
}
} finally {
if ( null != in) {
in.close();
}
if ( null != out) {
out.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
private static String getExtention(String fileName) {
int pos = fileName.lastIndexOf(".");
System.out.println(pos+"***"+fileName);
String fn = fileName.substring(pos) ;
System.out.println("fileName" + fn);
return fn;
}
@Action("upload")
public String upload() throws Exception {
String aa=this.imgFileFileName;
this.imgFileFileName = new Date().getTime()+ caption
+ getExtention(this.imgFileFileName);
System.out.println(imgFileFileName);
String url = ServletActionContext.getServletContext().getRealPath("/UploadImages");
System.out.println(url);
File fileDir = new File(url);
System.out.println(fileDir.exists()+"***********before");
if(!fileDir.exists()){
fileDir.mkdirs();
}
System.out.println(fileDir.exists()+"***********after");
File imageFile = new File(url+ "/"+this.imgFileFileName);
copy(new File(aa), imageFile);
// FileUtils.copyFile(new File(aa), imageFile);
return "ok";
}
无论是使用 FileUtils.copyFile() 或者 自己的copy()方法都一样!!
不懂! 展开
去掉这个2进制参数 后文件上传什么格式 就是什么格式,加上后 都变成了
tmp格式???
不明白,请大虾赐教!
代码如下:
页面:
<form id="searchForm" name="searchForm" method="post" action="${contextPath}/portal/up/upload.py" enctype="multipart/form-data">
<input type="file" name="imgFileFileName">
标题:<input type="text" name="caption"/>
<input type="submit" name="提交" value="tijiao "/>
</form>
Action:
private static void copy(File src, File dst) {
try {
InputStream in = null ;
OutputStream out = null ;
try {
in = new BufferedInputStream( new FileInputStream(src), BUFFER_SIZE);
out = new BufferedOutputStream( new FileOutputStream(dst), BUFFER_SIZE);
byte [] buffer = new byte [BUFFER_SIZE];
while (in.read(buffer) > 0 ) {
out.write(buffer);
}
} finally {
if ( null != in) {
in.close();
}
if ( null != out) {
out.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
private static String getExtention(String fileName) {
int pos = fileName.lastIndexOf(".");
System.out.println(pos+"***"+fileName);
String fn = fileName.substring(pos) ;
System.out.println("fileName" + fn);
return fn;
}
@Action("upload")
public String upload() throws Exception {
String aa=this.imgFileFileName;
this.imgFileFileName = new Date().getTime()+ caption
+ getExtention(this.imgFileFileName);
System.out.println(imgFileFileName);
String url = ServletActionContext.getServletContext().getRealPath("/UploadImages");
System.out.println(url);
File fileDir = new File(url);
System.out.println(fileDir.exists()+"***********before");
if(!fileDir.exists()){
fileDir.mkdirs();
}
System.out.println(fileDir.exists()+"***********after");
File imageFile = new File(url+ "/"+this.imgFileFileName);
copy(new File(aa), imageFile);
// FileUtils.copyFile(new File(aa), imageFile);
return "ok";
}
无论是使用 FileUtils.copyFile() 或者 自己的copy()方法都一样!!
不懂! 展开
2个回答
展开全部
表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。
Struts2中接收的文件都按照临时文件的形式保存在临时文件夹中。如果要接收文件名,要通过“参数名+FileName”的形式来设置参数,并生成“getter”和“setter”的方法。
因此这里需要接收“imgFileFileNameFileName”属性名;“imgFileFileName”后面再跟一个“FileName”才可以。
Struts2中接收的文件都按照临时文件的形式保存在临时文件夹中。如果要接收文件名,要通过“参数名+FileName”的形式来设置参数,并生成“getter”和“setter”的方法。
因此这里需要接收“imgFileFileNameFileName”属性名;“imgFileFileName”后面再跟一个“FileName”才可以。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询