前言

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

内容

需求:

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

解决方式:

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. 通过maven的jar包库找到对应的jar包。

    查找连接: http://search.maven.org/ 查找实例 http://search.maven.org/#search|ga|1|a%3A%22log4j%22

  2. Spring之3:BeanFactory、ApplicationContext、ApplicationContextAware区别

    在Spring中系统已经为用户提供了许多已经定义好的容器实现,而不需要开发人员事必躬亲.相比那些简单拓展BeanFactory的基本IoC容器,开发人员常用的ApplicationContext除了能 ...

  3. 2018年长沙理工大学第十三届程序设计竞赛 H数学考试

    链接:https://www.nowcoder.com/acm/contest/96/H来源:牛客网 数学考试 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6 ...

  4. .net core 环境安装

    NET Core开发环境搭建 使用VS2015开发.NET Core项目,环境的搭建可以参考官网,大致安装步骤如下: 1.首先你得装个vs2015 并且保证已经升级至 update3及以上, 2.vs ...

  5. NodeJS之Url的使用

    一.通过http模块中的request事件可以得到在服务端拿到客户端的有关url的数据(req.url),其中req.url得到的数据是端口号后的所有路径,之后通过调入url模块对获取到的req.ur ...

  6. NodeJs之文件合并(某一文件的内容发生变化与之相关的内容重新合并)

    首先,一个文件里面的内容是由多个文件共同组成的.例如一个文件夹包含有多文件(文件夹) 然后,当其中一个发生变化时所用与之有直接作用的文件(文件夹)都会重新组合. /*注意:该例子需要在同级目录下完成及 ...

  7. Repmat:Replicate and tile an array

    Repmat:Replicate and tile an array Syntax B = repmat(A,m,n) B = repmat(A,[m n]) B = repmat(A,[m n p. ...

  8. IOS 屏幕尺寸

    型号 屏幕尺寸(英寸) 分辨率(pt) 像素分辨率(px)iPhone 3G 3.5 320*480 480x320iPhone 3GS   3.5 320*480 480x320iPhone4 3. ...

  9. from xml.etree import cElementTree as ET

  10. Quartz_1_简单编程式任务调度使用(SimpleTrigger)

    最近在工作中,要做定时任务的更能,最开始的时候,想到的是 JavaSE 中,自带 Timer 及 TimerTask 联合使用,完成定时任务.最后发现,随着业务的复杂,JDK 中的 Timer 和 T ...