JSP(SSH)表单上传图片以及文本内容到后台保存,上传带图片的文章新闻等

来源:互联网 发布:php超链接代码 编辑:程序博客网 时间:2024/04/30 00:39

FORM里设置了enctype="multipart/form-data"后用不能利用struts把数据传到后台action中,因为是流传输方式。

用fileupload工具包解决:
action中代码:
String root = ServletActionContext.getRequest().getRealPath("/upload");DiskFileItemFactory factory = new DiskFileItemFactory();  ServletFileUpload upload = new ServletFileUpload(factory);try {List items = upload.parseRequest(ServletActionContext.getRequest());Iterator it = items.iterator();while (it.hasNext()) {FileItem item = (FileItem) it.next();if (item.isFormField()) { // 如果是表单域if (item.getFieldName().equals("newstype")) {String newstype = item.getString("UTF-8");newstemp.setNewstype(Integer.parseInt(newstype));}if (item.getFieldName().equals("newsauthor")) {String newsauthor = item.getString("UTF-8");newstemp.setAuthor(newsauthor);}if (item.getFieldName().equals("newsisshowfront")) {String newsisshowfront = item.getString("UTF-8");newstemp.setIsshowfront(Integer.parseInt(newsisshowfront));}if (item.getFieldName().equals("newstitle")) {String newstitle = item.getString("UTF-8");newstemp.setNewstitle(newstitle);}if (item.getFieldName().equals("newscontent")) {String newscontent = item.getString("UTF-8");newstemp.setNewscontent(newscontent);}} else { // 如果是文件if (item.getName() != null && !item.getName().equals("")) {File file = new File(root,item.getName());newstemp.setNewsimages("upload/"+item.getName());item.write(file);}}}adminservice.addNews(newstemp);} catch (Exception e) {e.printStackTrace();System.err.println("上传文件不成功!");}
JSP代码:
<input type="text" class="input-200" name="newsauthor"/><s:file name="image" label="文件"></s:file>

也许用其他方式也可以解决这个问题,但个人觉得这种方式较简单。

1 0
原创粉丝点击