Struts2上传图片问题
我把图片上传到本地项目子目录文件夹下面,在eclipse中每次要刷新文件夹才可以出来,现在把项目放到服务器上面,每次上传后,只是把文件路径保存到了数据库,而项目目录下面的...
我把图片上传到本地项目子目录文件夹下面,在eclipse中 每次要刷新文件夹才可以出来,现在把项目放到服务器上面,每次上传后,只是把文件路径保存到了数据库,而项目目录下面的文件夹,并没有上传的图片,该怎么办,
==================================================
uploadFile = new UploadFile();
uploadFile.setFileName(fileName);
mpbinfo.setImg(uploadFile.saveImage(myFile));
================================================
public class UploadFile {
private static final int BUFFER_SIZE = 16 * 1024;
String imageFileName;
public static InputStream in;
public static OutputStream out;
private String fileName;
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public static int getBufferSize() {
return BUFFER_SIZE;
}
private static void copy(File src, File dst) {
try {
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(".");
return fileName.substring(pos);
}
public String saveImage(File myFile) {
imageFileName = new Date().getTime() + getExtention(fileName);
// File imageFile = new
// File(ServletActionContext.getServletContext().getRealPath("/uploadImage")
// + "/" + imageFileName);
File imageFile = new File("D:/java/workspaces/mjms/WebRoot/image" + "/"
+ imageFileName);
copy(myFile, imageFile);
return imageFileName;
}
} 展开
==================================================
uploadFile = new UploadFile();
uploadFile.setFileName(fileName);
mpbinfo.setImg(uploadFile.saveImage(myFile));
================================================
public class UploadFile {
private static final int BUFFER_SIZE = 16 * 1024;
String imageFileName;
public static InputStream in;
public static OutputStream out;
private String fileName;
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public static int getBufferSize() {
return BUFFER_SIZE;
}
private static void copy(File src, File dst) {
try {
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(".");
return fileName.substring(pos);
}
public String saveImage(File myFile) {
imageFileName = new Date().getTime() + getExtention(fileName);
// File imageFile = new
// File(ServletActionContext.getServletContext().getRealPath("/uploadImage")
// + "/" + imageFileName);
File imageFile = new File("D:/java/workspaces/mjms/WebRoot/image" + "/"
+ imageFileName);
copy(myFile, imageFile);
return imageFileName;
}
} 展开
3个回答
展开全部
File imageFile = new File("D:/java/workspaces/mjms/WebRoot/image" + "/"
+ imageFileName);
服务器上没有这个文件,应该是这里的路径,这是你本机的路径,在服务器上有这个目录?建议写相对路径。
还有个问题,就是你说的每次要刷新的问题,
问题在这里:
if (null != out) {
out.frush();//加上这一句代码,就不用手动刷新了
out.close();
}
+ imageFileName);
服务器上没有这个文件,应该是这里的路径,这是你本机的路径,在服务器上有这个目录?建议写相对路径。
还有个问题,就是你说的每次要刷新的问题,
问题在这里:
if (null != out) {
out.frush();//加上这一句代码,就不用手动刷新了
out.close();
}
展开全部
首先感觉你的思路理解就存在问题。struts2文件上传位置应该是服务器上,然后在数据库保存其相对路径。如果像你这样做,上传到workspace下的image文件夹下,那么每次都需要重新部署项目才可以的。在真正项目过程中,不可能是像你那样的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个程序只能说是一个文件复制程序
追问
网上找的资料~~就拿来用了~,该怎么弄有没有例子 谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询