版权声明
1. 本站文章和资源均来自互联网收集和整理,本站不承担任何责任及版权问题。
2. 相关版权归作者及其公司所有,仅供学习研究用途,请勿用于商业目的。
3. 若侵犯您的版权,请发邮件至webmaster@ishare1.cn联系我们,我们确认后将立即删除。
<p style="text-align: center;"><img src="https://www.ishare1.cn/wp-content/uploads/2021/04/frc-090942e90fdc07982644a643fe43a2e0.jpg"></p>
<p>首先来看如下效果图片:</p>
<p><img src="https://www.ishare1.cn/wp-content/uploads/2021/04/frc-6382350bf7766423b6d939a2860d2221.png"></p>
<p>表单代码:</p>
<p>(推荐视频教程:java视频教程)</p>
<pre class="brush:html;toolbar:false"></pre>
<form action="/addPro" method="post" enctype="multipart/form-data">
<a>宠物(或产品)类型:</a><select id="categoryID" name="cid"></select></p>
<p> <a>宠物(或产品)名字:</a><input type="text" name="cname"></p>
<p> <a>一句话介绍:</a><input type="text" name="introduction"></p>
<p> <a>题目:</a><input type="text" name="title"></p>
<p> <a>价钱:</a><input type="text" name="price"></p>
<p> <a>库存:</a><input type="text" name="stock"></p>
<p> <a>状态:</a><select name="status"><option value="1">在售</option><option value="2">下架</option><option value="3">删除</option></select></p>
<p> <a>头像设置:</a><input type="file" name="fileName"><br />
<br />
<img src="%24%7Bdata.image%7D" alt="Image preview"><br />
<a>详细描述(编辑完需要在文本框右上角点保存):</a></p>
<div id="editor">
<p>商品详细描述</p>
<p>编辑完需要在文本框右上角点保存</p>
</p></div>
<p><input type="hidden" name="details" id="detail"></p>
<p> <input type="submit" value="新增商品"><br />
</form>
<p>提交表单是采用二进制方式提交,所以一般用来上传图片操作,当在这个表单下同时上传文本,就会报错。但是业务需要上传商品是文本和图片同时上传的,所以这里要用到commons的四个包,使用Maven导入,如下:</p>
<pre class="brush:php;toolbar:false">
<dependency>
<groupid>commons-io</groupid>
<artifactid>commons-io</artifactid>
<version>2.4</version>
</dependency>
<dependency>
<groupid>commons-fileupload</groupid>
<artifactid>commons-fileupload</artifactid>
<version>1.3.3</version>
</dependency>
<dependency>
<groupid>commons-collections</groupid>
<artifactid>commons-collections</artifactid>
<version>3.1</version>
</dependency>
<dependency>
<groupid>commons-beanutils</groupid>
<artifactid>commons-beanutils</artifactid>
<version>1.9.2</version>
</dependency></pre>
<p>Java代码如下:</p>
<p>主要判断每一个参数的属性,图片的则进行图片处理,文本则进行文本处理。</p>
<pre class="brush:php;toolbar:false">//新增产品
@RequestMapping("/addPro")
public void addPro(HttpServletRequest request, HttpServletResponse response) throws IOException {
//编码规范
response.setContentType("text/html");
// response.setCharacterEncoding("utf-8");
Product product = new Product();
//这种方法主要通过if (item.isFormField())这个条件判别文件还是非文件
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List items = null;
try {
items = upload.parseRequest(request);
} catch (FileUploadException e) {
e.printStackTrace();
} // 解析request请求
Iterator iter = items.iterator();// 遍历表单中提交过来的内容
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (item.isFormField()) { // 如果是表单域 ,就是非文件上传元素
String value = item.getString("UTF-8"); // 获取value属性的值,这里需要指明UTF-8格式,否则出现中文乱码问题
if (item.getFieldName().equals("cid")) {// 对应form中属性的名字
int categoryId = Integer.parseInt(value);
product.setCategory_id(categoryId);
} else if (item.getFieldName().equals("cname")) {
product.setName(value);
}else if (item.getFieldName().equals("introduction")) {
product.setIntroduction(value);
}else if (item.getFieldName().equals("title")) {
product.setTitle(value);
}else if (item.getFieldName().equals("price")) {
BigDecimal price=new BigDecimal(value);
product.setPrice(price);
}else if (item.getFieldName().equals("stock")) {
product.setStock(Integer.parseInt(value));
}else if (item.getFieldName().equals("status")) {
product.setStatus(Integer.parseInt(value));
}else if (item.getFieldName().equals("details")) {
product.setDetail(value);
}
}else {
String filename = item.getName(); // 文件的名字
String imgname = filename.substring(0, filename.indexOf(".")); //减去“.”后面的字符
//tomcat启动位置
// String t1 = System.getProperty("user.dir").substring(0,
// System.getProperty("user.dir").length() - 4);
String path = request.getServletContext().getRealPath("img"); //target找到img位置
Long time = Calendar.getInstance().getTimeInMillis(); //时间戳,保证文件命名不重复
String imgurl = "./img/"+imgname+time+".jpg";
product.setImage(imgurl);
System.out.println(imgurl);
File saveFile = new File(path+"/" + imgname+time+".jpg"); // 定义一个file指向一个具体的文件
try {
item.write(saveFile);// 把上传的内容写到一个文件中
System.out.println("上传到"+path+"成功");
} catch (Exception e) {
/* e.printStackTrace(); */
System.out.println("文件"+path+"为空");
}
}
}
if(productDaoService.addProduct(product)){
PrintWriter out = response.getWriter();
out.print("<script language="javascript">alert('ADD SUCCESS');window.location.href='/admin/administrator'</script>");
}else {
PrintWriter out = response.getWriter();
out.print("<script language="javascript">alert('增加失败');window.location.href='/admin/addProduct'</script>");
}
}</pre>
<p>相关文章教程推荐:java入门教程</p>
<div class='os-share-title'><h5>分享本文到 </h5></div><div class='os-share-box'><i onclick="share_button_click('//connect.qq.com/widget/shareqq/index.html?url=%URL%&title=%TITLE%&summary=%SUMMARY%&pics=%PICS%')" title="分享到 QQ" class="iconfont os-icon os-qq"><svg aria-hidden="true"><use xlink:href="#os-qq"></use></svg></i><i onclick="share_button_click('http://service.weibo.com/share/share.php?url=%URL%&title=%TITLE%&pic=%PIC%&appkey=2179675283&ralateUid=&language=zh_cn&searchPic=true')" title="分享到 微博" class="iconfont os-icon os-weibo"><svg aria-hidden="true"><use xlink:href="#os-weibo"></use></svg></i><i title="分享到 微信" class="iconfont os-icon os-wechat"><svg aria-hidden="true"><use xlink:href="#os-wechat"></use></svg></i><i onclick="share_button_click('//sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=%URL%&title=%TITLE%&desc=&summary=%SUMMARY%&site=爱分享&pics=%PICS%')" title="分享到 QQ空间" class="iconfont os-icon os-qqzone"><svg aria-hidden="true"><use xlink:href="#os-qqzone"></use></svg></i><i onclick="share_button_click('//www.douban.com/share/service?image=%PIC%&href=%URL%&name=%TITLE%&text=%SUMMARY%')" title="分享到 豆瓣" class="iconfont os-icon os-douban"><svg aria-hidden="true"><use xlink:href="#os-douban"></use></svg></i></div><div id='os-popup-placeholder' style='display:none'><span>×</span><i class="iconfont os-icon os-wechat"><svg aria-hidden="true"><use xlink:href="#os-wechat"></use></svg></i>用微信扫描并分享</div>