servlet中form表单上传文件

private void saveDoFood(HttpServletRequest request, HttpServletResponse response) {
		// TODO Auto-generated method stub
		try {
			DiskFileItemFactory factory = new DiskFileItemFactory();
			ServletFileUpload servletFileUpload = new ServletFileUpload(factory);
			List<String> attr_list = new ArrayList<String>();
			String name = null;
			if(servletFileUpload.isMultipartContent(request)) {
				List<FileItem> list = servletFileUpload.parseRequest(request);
				for (FileItem fileItem : list) {
					if(fileItem.isFormField()) {
						String fieldName = fileItem.getFieldName();
						String value = fileItem.getString("UTF-8");
						System.out.println(fieldName+"-----"+value);
						attr_list.add(value);
					}else {
						String fieldName = fileItem.getFieldName();
						name= fileItem.getName();
						if(!"".equals(name)) {
							name = UUID.randomUUID().toString().replaceAll("-", "")+"_"+name;
							String realPath = "E:\\pictures";
							File file = new File(realPath);
							if(!file.exists()) {
								file.mkdir();
							}
							fileItem.write(new File(file, name));
						}	
					}
				}
			}
			foodService.saveDoFood(attr_list,name);
			response.sendRedirect(request.getContextPath()+"/foodServlet?method=getFoodList");
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		
	}
前台
<div id="MainArea">
	<!-- 表单内容 -->
	<form action="foodServlet?method=saveDoFood" method="post" enctype="multipart/form-data">
		<!-- 本段标题(分段标题) -->
		<div class="ItemBlock_Title">
        	<img width="4" height="7" border="0" src="<%=basePath%>/style/images/item_point.gif"> 菜品信息 
        </div>
		<!-- 本段表单字段 -->
        <div class="ItemBlockBorder">
            <div class="ItemBlock">
				<div class="ItemBlock2">
					<table cellpadding="0" cellspacing="0" class="mainForm">
                    <tr>
							<td width="80px">菜系</td>
							<td>
                            <select name="cid" style="width:80px">
	                            <c:forEach items="${foodTypeList }" var="foodTypeList">
	                          	    <option value="${foodTypeList.id }" 	
			   						>${foodTypeList.type }</option>				
	                            </c:forEach>
                            </select>
                             *<input type="hidden" name="id" value="" /></td>
						</tr>
						<tr>
							<td width="80px">菜名</td>
							<td><input type="text" name="foodName" class="InputStyle" value=""/> *</td>
						</tr>
						<tr>
							<td>价格</td>
							<td><input type="text" name="price" class="InputStyle" value=""/> *</td>
						</tr>
                        <tr>
							<td>会员价格</td>
							<td><input type="text" name="mprice" class="InputStyle" value=""/> *</td>
						</tr>
						
						<tr>
							<td>简介</td>
							<td><textarea name="introduce" class="TextareaStyle"></textarea></td>
						</tr>
						<tr>
							<td width="80px">菜品图片</td>
							<td>
								
								<input type="file" name="imageUrl"/> *
							</td>
						</tr>
					</table>
				</div>
            </div>
        </div>
		
		
		<!-- 表单操作 -->
		<div id="InputDetailBar">
            
				
				
					 <input type="submit" value="添加" class="FunctionButtonInput">
				
			
            
            <a href="javascript:history.go(-1);" class="FunctionButton">返回</a>
        </div>
	</form>
</div>

猜你喜欢

转载自blog.csdn.net/zhangzuyuanbest/article/details/81053510