图片上传 tomcat重新部署后图片被删除请问要如何解决

public class LedgerAdd extends BaseAction {
protected ActionForward executeAction(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
DynaActionForm LedgerForm = (DynaActionForm) form;
if (LedgerForm != null) {
FormFile file = (FormFile) LedgerForm.get("photo");
if (file != null) {
String contentType = file.getContentType();
String size = (file.getFileSize() + "bytes");
String fileUrl = file.getFileName();
int s_id = fileUrl.lastIndexOf(".");
String ext = fileUrl.substring(s_id);
String nuclideName = (String) LedgerForm.get("nuclideName")
String ratify = "2";
if (nuclideName != null && !nuclideName.equals("")
&& fileUrl != null && !fileUrl.equals("")) {
Date d = new Date();
java.text.SimpleDateFormat df = new java.text.SimpleDateFormat();
Calendar calendar = GregorianCalendar.getInstance();
df.applyPattern("yyyyMMddHHmmss");
InputStream stream = file.getInputStream();// 把文件读入
String path=request.getSession().getServletContext().getRealPath("/");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream bos = new FileOutputStream(path+ "/UploadFile/" + df.format(d) + ext);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) {
bos.write(buffer, 0, bytesRead);// 将文件写入服务器 }
bos.close();stream.close();
int addid = rs.addLedger(request.getContextPath()+ "/UploadFile/" + df.format(d) + ext,nuclideName, remark);
if (addid > 0) {
request.setAttribute("msg", "添加成功");} else {
request.setAttribute("msg", "添加失败");}} else {
request.setAttribute("msg", "带*的参数必须输入");}}}
return mapping.findForward("success");}}

8个回答

我 传到哪里啊 给地址一下给我 我给你做了一个

重新部署?图片传了怎么会被删呢,应该是你原来上传的图片路径不对吧

你指的重新部署是什么意思?你可以先在程序里面打印出你放图片那个位置,看位置对没有,然后看相应路径下面有没有图片,我看你的代码是大概是获得当前应用下的一个UploadFile目录,你重新部署后这个目录下有图片什么的么?

重新部署之后文件不再了看你做了什么操作吧,有可能你从新启动会清空这个目录下的文件也说不定,要改保存的地方,改下你new FileOutputStream(path+ "/UploadFile/" + df.format(d) + ext); 这个不就可以了。

你的程序是跑在tomcat中的,所以当然得传到你服务器里面,然后你假如在程序里面重新部署了 ,会清掉tomcat中的图片 。因为你项目里面是没有你上传的图片的,假如你怕每次部署都清除了图片不好调试 你在上传的时候 也传到你设定的某个文件夹,即使清空后也找的回来 便于调试。

算了 我给你做一个实例吧
你的要求应该是这样:
[color=red]上传:图片存入到两个地方,一个地方是tomcat,第二个地方应该是你自定义的文件夹。[/color]
之所以你tomcat没有图片了 是因为你重新部署加载了 所以图片弄丢了 正式发布之后使用的时候不会出现这种情况的。

我分析的对吗 假如你要的话 我给你做个例子

好 == 你是用struts1的吧

我已经发给你了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐