前言

网上商城中的淘宝图片要显示在页面的前提是图片应该已经在数据库里面,那么怎么实现图片的上传功能呢,这就是今天要说的主题。

内容

需求:

商城后台需要添加图片文件,用来图片显示

解决方式:

Struts2框架中文件上传

*文件的条件

*提交方式为POST(文件大小不用限制),采用GET方式提交的文件大小有限制。

*表单上传项必须有一个name属性

*表单的enctype属性值需要时multipart/form-data

*前台显示:通过提交form表单提交表单数据,给form表单一个action路径

DEMO部分

  • 前台表单部分

<form id="userAction_save_do" name="Form1" action="${pageContext.request.contextPath}/adminProduct_save.action" method="post" enctype="multipart/form-data">
<table>
<tr>
<td width="18%" align="center" bgColor="#f5fafe" class="ta_01">
商品图片:
</td>
<td class="ta_01" bgColor="#ffffff" colspan="3">
<input type="file" name="upload"/>
</td>
</tr>
</table>
</form>

  • Action类

/*
* 说明:后台商品管理的action
* 作者:周丽同
*/
public class AdminProductAction extends ActionSupport implements ModelDriven<Product>{
//模型驱动使用的对象
private Product product = new Product();
public Product getModel(){
return product;
}
//注入商品的service
private ProductService productService;
public void setProductService(ProductService productService) {
this.productService = productService;
} //文件上传需要的参数:
private File upload;//上传的文件
private String uploadFileName;//接收文件上传的文件名
private String uploadContext;//接收文件上传的文件的MIME的类型 public void setUpload(File upload) {
this.upload = upload;
} public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
} public void setUploadContext(String uploadContext) {
this.uploadContext = uploadContext;
} //保存商品的方法
public String save() throws IOException{
//调用service完成保存操作
product.setPdate(new Date());
if(upload != null){
//获得文件上传的磁盘绝对路径:
String realPath = ServletActionContext.getServletContext().getRealPath("/products");
//创建一个文件:
File diskFile = new File(realPath+"//"+uploadFileName);
//文件上传:
FileUtils.copyFile(upload, diskFile);
product.setImage("products/"+uploadFileName);
}
//将数据保存到数据库
productService.save(product);
//页面跳转
return "saveSuccess";
}
}

  • Service类

/*
*说明:商品的业务层代码
*作者:周丽同
*/
@Transactional
public class ProductService {
//业务层保存商品的方法
public void save(Product product) {
// TODO Auto-generated method stub
productDao.save(product);
}
}

  • Dao类

/*
* 说明:添加商品
* 作者:周丽同
*/
public class ProductDao extends HibernateDaoSupport {
//DAO层保存商品的方法
public void save(Product product) {
// TODO Auto-generated method stub
this.getHibernateTemplate().save(product);
}
}

  • Struts.xml

<!-- 配置添加商品的action -->
<action name="adminProduct_*" class="adminProductAction" method="{1}">
<result name="saveSuccess" type="redirectAction">adminProduct_findAll.action?page=1</result> <interceptor-ref name="PrivilegeInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>

小结

这些东西自己还得多多总结啊!

感谢您的宝贵时间······

SSH—网上商城之商品图片文件上传的更多相关文章

  1. PHP代码篇(五)--如何将图片文件上传到另外一台服务上

    说,我有一个需求,就是一个临时功能.由于工作开发问题,我们有一个B项目,需要有一个商品添加的功能,涉及到添加商品内容,比如商品名字,商品描述,商品库存,商品图片等.后台商品添加的接口已经写完了,但是问 ...

  2. springmvc图片文件上传接口

    springmvc图片文件上传 用MultipartFile文件方式传输 Controller package com.controller; import java.awt.image.Buffer ...

  3. SpringMvc MultipartFile 图片文件上传

    spring-servlet.xml <!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 --> <bean id="multipar ...

  4. .Net Core 图片文件上传下载

    当下.Net Core项目可是如雨后春笋一般发展起来,作为.Net大军中的一员,我热忱地拥抱了.Net Core并且积极使用其进行业务的开发,我们先介绍下.Net Core项目下实现文件上传下载接口. ...

  5. SpringMvc commons-fileupload图片/文件上传

    简介 SpringMvc文件上传的实现,是由commons-fileupload这个jar包实现的. 需求 在修改商品页面,添加上传商品图片功能. Maven依赖包 pom.xml <!-- 文 ...

  6. PHP 图片文件上传代码

    通过 PHP,可以把文件上传到服务器.里面加入一些图片的判断,如果不加判断文件的类型就可以上传任意格式的文件. 为了网站的安全,肯定不让上传php文件,如果有人进入你的后台,上传了一个php文件,你的 ...

  7. PHP 图片文件上传代码分享

    分享下php上传图片文件的一段代码,挺不错的. 通过 PHP,可以把文件上传到服务器.加入一些图片的判断,如果不加判断文件的类型就可以上传任意格式的文件. 当然了,会禁止上传php文件,以及其它程序代 ...

  8. PHP图片文件上传类型限制扩展名限制大小限制与自动检测目录创建。

    程序测试网址:http://blog.z88j.com/fileuploadexample/index.html 代码分为两部分: 一部分form表单: <!doctype html> & ...

  9. iOS分享 - AFNetworking之多图片/文件上传

    在分享经验之前,先说点题外话,之前的一个项目涉及到了多图片的上传,本来以为是一个很简单的事情,却着实困扰了我好久,究其原因,一是我不够细心,二是与后台人员的交流不够充分.在此,我想将我的老师常说的一句 ...

随机推荐

  1. 三层自动生成 完整源代码(for oracle)

    using Oracle.DataAccess.Client; using System; using System.Collections.Generic; using System.Compone ...

  2. Unix文件指令-Mac终端命令应用

    pwd:查看当前文件夹 cd: 打开文件夹 ls:列出当前路径下所有文件 ls -l :列出当前路径下的所有文件详细信息. mkdir: 新建文件夹 touch: 创建文件   eg: touch t ...

  3. 蓝桥杯 算法训练 ALGO-150 6-1 递归求二项式系数值

      算法训练 6-1 递归求二项式系数值   时间限制:10.0s   内存限制:256.0MB 问题描述 样例输入 一个满足题目要求的输入范例.3 10 样例输出 与上面的样例输入对应的输出. 数据 ...

  4. Qt多选框

    1.获取并显示复选框文本内容 ui->label->setText(ui->comboBox->currentText());

  5. svn更新报错:出现skipped:目标路径

    skipped 意为:跳过此目标文件: 一般出现在目标文件被删除后,重新更新情况下: 解决办法及结果: 1,回到此目标文件的上一层文件夹,team-clean up,结果不成功 2,回到此目标文件的上 ...

  6. SOAP webserivce 和 RESTful webservice 对比及区别

    简单对象访问协议(Simple Object Access Protocol,SOAP)是一种基于 XML 的协议,可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传 ...

  7. Java开发Linux常用命令

    linux下tomcat服务的相关命令 http://blog.csdn.net/zhangzhikaixinya/article/details/8224307 linux下实时查看tomcat运行 ...

  8. git 学习 多个提交用同一个commit

    git add .git commit --amend(连续按连个ZZ)git push -f origin ibm_branch(命令行可能不好用,用IDEA force push好用)

  9. 空中楼阁 ( House )最短路

    题目描述: 话说Z4阴差阳错地来到了神秘岛.不久,他们发现,这是一个由n个小岛和一个中心岛组成的群岛,群岛之间有m座桥.令他们感到惊讶的是,这些桥并不是固定不变的,经较长时间的观察,发现它们会随时间作 ...

  10. paramiko分开执行多条命令 不像之前一样使用\n

    #!/usr/bin/env python#-*- encoding -*- import paramiko transport = paramiko.Transport(('192.168.11.1 ...