问题描述
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");}} 问题补充:uncontrolsheep 写道
解决方案
我 传到哪里啊 给地址一下给我 我给你做了一个
解决方案二:
我已经发给你了
解决方案三:
好 == 你是用struts1的吧
解决方案四:
算了 我给你做一个实例吧你的要求应该是这样:上传:图片存入到两个地方,一个地方是tomcat,第二个地方应该是你自定义的文件夹。之所以你tomcat没有图片了 是因为你重新部署加载了 所以图片弄丢了 正式发布之后使用的时候不会出现这种情况的。我分析的对吗 假如你要的话 我给你做个例子
解决方案五:
你的程序是跑在tomcat中的,所以当然得传到你服务器里面,然后你假如在程序里面重新部署了 ,会清掉tomcat中的图片 。因为你项目里面是没有你上传的图片的,假如你怕每次部署都清除了图片不好调试 你在上传的时候 也传到你设定的某个文件夹,即使清空后也找的回来 便于调试。
解决方案六:
重新部署之后文件不再了看你做了什么操作吧,有可能你从新启动会清空这个目录下的文件也说不定,要改保存的地方,改下你new FileOutputStream(path+ "/UploadFile/" + df.format(d) + ext); 这个不就可以了。
解决方案七:
你指的重新部署是什么意思?你可以先在程序里面打印出你放图片那个位置,看位置对没有,然后看相应路径下面有没有图片,我看你的代码是大概是获得当前应用下的一个UploadFile目录,你重新部署后这个目录下有图片什么的么?
解决方案八:
重新部署?图片传了怎么会被删呢,应该是你原来上传的图片路径不对吧