private static final int BUFFER_SIZE = 16*1024;
private File myFile;
private String contentType;
private String fileName;
private String imageFileName;
private String caption;
public void setMyFileContentType(String contentType) {
this .contentType = contentType;
}
public void setMyFileFileName(String fileName) {
this .fileName = fileName;
}
public void setMyFile(File myFile) {
this .myFile = myFile;
}
public String getImageFileName() {
return imageFileName;
}
public String getCaption() {
return caption;
}
public void setCaption(String caption) {
this .caption = caption;
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
response.addHeader("Cache-Control", "no-cache");
response.addHeader("Expires", "Thu, 01 Jan 1970 00:00:01 GMT");
Configuration config = new Configuration();
request.setCharacterEncoding("utf-8");
String url = request.getParameter("myFile");
int i = url.lastIndexOf("\\");
String fnames = url.substring(i+1);
this.myFile = new File(url);
File imageFile = new File(config.getWebPath()+ "theme/default/images" + "/" + fnames);
int iCount = 0;
iCount = copy(myFile, imageFile);
}
private static int 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);
}
return 1;
} finally {
if ( null != in) {
in.close();
}
if ( null != out) {
out.close();
}
}
} catch (Exception e) {
e.printStackTrace();
return -1;
}
}
19 个解决方案
#1
顶一下。谁来给我指点迷津啊……
#2
你的服务部署在哪里,那就肯定是在哪里找你的路径咯
#4
如果图片在服务器上,应该把路径指向服务器
#5
不太清楚呢!帮项一下!
#6
那个代码是我从网上搜的,说是struts2上传文件……
#8
看结果,学习
#9
楼主你上当了
这段代码看起来象Stuts2 + Servlet 的奇怪混合
而且有致命错误
上传文件的原理很简单,客户端随request传送File对象过来,服务器端将它保存到硬盘就Ok了,你可以看看其它简单例子,看明白了才用
这段代码看起来象Stuts2 + Servlet 的奇怪混合
而且有致命错误
上传文件的原理很简单,客户端随request传送File对象过来,服务器端将它保存到硬盘就Ok了,你可以看看其它简单例子,看明白了才用
#10
try {
DiskFileUpload fu = new DiskFileUpload();
// 设置最大文件尺寸,这里是4MB
fu.setSizeMax(4194304);
// 设置缓冲区大小,这里是4kb
fu.setSizeThreshold(4096);
// 设置临时目录:
fu.setRepositoryPath(tempPath);
// 得到所有的文件:
List fileItems = fu.parseRequest(request); Iterator i = fileItems.iterator();
// 依次处理每一个文件:
while(i.hasNext()) {
FileItem fi = (FileItem)fileItems.get(0);
// 获得文件名,这个文件名包括路径:
String fileName = fi.getName();
System.out.println("fileName:"+fileName);
// 在这里可以记录用户和文件信息
// ...
// 写入文件,暂定文件名为a.txt,可以从fileName中提取文件名:
fi.write(new File(fileName));
iCount = 1;
}
}catch(Exception e) {
// 可以跳转出错页面
}
红色代码部分取不到数据,咋回事啊?
#11
try {
DiskFileUpload fu = new DiskFileUpload();
// 设置最大文件尺寸,这里是4MB
fu.setSizeMax(4194304);
// 设置缓冲区大小,这里是4kb
fu.setSizeThreshold(4096);
// 设置临时目录:
fu.setRepositoryPath(tempPath);
// 得到所有的文件:
[code=Java]
List fileItems = fu.parseRequest(request);(
Iterator i = fileItems.iterator();
// 依次处理每一个文件:
while(i.hasNext()) {
FileItem fi = (FileItem)fileItems.get(0);
// 获得文件名,这个文件名包括路径:
String fileName = fi.getName();
System.out.println("fileName:"+fileName);
// 在这里可以记录用户和文件信息
// ...
// 写入文件,暂定文件名为a.txt,可以从fileName中提取文件名:
fi.write(new File(fileName));
iCount = 1;
}
}catch(Exception e) {
// 可以跳转出错页面
}[/code]
红色部分取不到数据,咋回事啊?
#12
// 得到所有的文件:
List fileItems = fu.parseRequest(request);
这句代码为什么获取不到数据啊?
List fileItems = fu.parseRequest(request);
这句代码为什么获取不到数据啊?
#13
struts拦截了所有的request,原始的request是取不到数据的
直接用
直接用
MultiPartRequestWrapper mrw = (MultiPartRequestWrapper) request;
File[] files = mrw.getFiles("upload");//upload是表单file空间的name这里就可以拿到所有的文件了,然后就跟操作普通文件一样了
String[] fileNames = mrw.getFileNames("upload");//获取所有的文件名,跟files里对应
#14
但是我没有使用struts啊,项目使用的是DWR,Hibernate,Spring。
应该不存在struts拦截啊
还有就是用MultiPartRequestWrapper是不是需要某个jar包啊?
#15
额你的代码就是struts2的搞法额。。。
#16
路径问题。
#17
出了struts2的方法,还有别的实现方式吗?
#19
先给分吧,小绵羊的嘴皮子都快磨破了
#20
#1
顶一下。谁来给我指点迷津啊……
#2
你的服务部署在哪里,那就肯定是在哪里找你的路径咯
#3
#4
如果图片在服务器上,应该把路径指向服务器
#5
不太清楚呢!帮项一下!
#6
那个代码是我从网上搜的,说是struts2上传文件……
#7
http://gznofeng.iteye.com/blog/212844
struts2上传文件
struts2上传文件
#8
看结果,学习
#9
楼主你上当了
这段代码看起来象Stuts2 + Servlet 的奇怪混合
而且有致命错误
上传文件的原理很简单,客户端随request传送File对象过来,服务器端将它保存到硬盘就Ok了,你可以看看其它简单例子,看明白了才用
这段代码看起来象Stuts2 + Servlet 的奇怪混合
而且有致命错误
上传文件的原理很简单,客户端随request传送File对象过来,服务器端将它保存到硬盘就Ok了,你可以看看其它简单例子,看明白了才用
#10
try {
DiskFileUpload fu = new DiskFileUpload();
// 设置最大文件尺寸,这里是4MB
fu.setSizeMax(4194304);
// 设置缓冲区大小,这里是4kb
fu.setSizeThreshold(4096);
// 设置临时目录:
fu.setRepositoryPath(tempPath);
// 得到所有的文件:
List fileItems = fu.parseRequest(request); Iterator i = fileItems.iterator();
// 依次处理每一个文件:
while(i.hasNext()) {
FileItem fi = (FileItem)fileItems.get(0);
// 获得文件名,这个文件名包括路径:
String fileName = fi.getName();
System.out.println("fileName:"+fileName);
// 在这里可以记录用户和文件信息
// ...
// 写入文件,暂定文件名为a.txt,可以从fileName中提取文件名:
fi.write(new File(fileName));
iCount = 1;
}
}catch(Exception e) {
// 可以跳转出错页面
}
红色代码部分取不到数据,咋回事啊?
#11
try {
DiskFileUpload fu = new DiskFileUpload();
// 设置最大文件尺寸,这里是4MB
fu.setSizeMax(4194304);
// 设置缓冲区大小,这里是4kb
fu.setSizeThreshold(4096);
// 设置临时目录:
fu.setRepositoryPath(tempPath);
// 得到所有的文件:
[code=Java]
List fileItems = fu.parseRequest(request);(
Iterator i = fileItems.iterator();
// 依次处理每一个文件:
while(i.hasNext()) {
FileItem fi = (FileItem)fileItems.get(0);
// 获得文件名,这个文件名包括路径:
String fileName = fi.getName();
System.out.println("fileName:"+fileName);
// 在这里可以记录用户和文件信息
// ...
// 写入文件,暂定文件名为a.txt,可以从fileName中提取文件名:
fi.write(new File(fileName));
iCount = 1;
}
}catch(Exception e) {
// 可以跳转出错页面
}[/code]
红色部分取不到数据,咋回事啊?
#12
// 得到所有的文件:
List fileItems = fu.parseRequest(request);
这句代码为什么获取不到数据啊?
List fileItems = fu.parseRequest(request);
这句代码为什么获取不到数据啊?
#13
struts拦截了所有的request,原始的request是取不到数据的
直接用
直接用
MultiPartRequestWrapper mrw = (MultiPartRequestWrapper) request;
File[] files = mrw.getFiles("upload");//upload是表单file空间的name这里就可以拿到所有的文件了,然后就跟操作普通文件一样了
String[] fileNames = mrw.getFileNames("upload");//获取所有的文件名,跟files里对应
#14
但是我没有使用struts啊,项目使用的是DWR,Hibernate,Spring。
应该不存在struts拦截啊
还有就是用MultiPartRequestWrapper是不是需要某个jar包啊?
#15
额你的代码就是struts2的搞法额。。。
#16
路径问题。
#17
出了struts2的方法,还有别的实现方式吗?
#18
#19
先给分吧,小绵羊的嘴皮子都快磨破了