求大神帮忙servlet接收上传图片的问题

lishikai500 2013-09-29 09:01:27
我要做出网页 用servlet接收用户上传的本地图片
<input type="file" name="pic" accept="image/*"/>
储存到WebContent 下面的images 文件夹里,文件名还保持图片的文件名
到网上看看实在看不明白
求大神指点,最好能给一个简单的例子
...全文
285 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
long23132111332 2014-04-03
  • 打赏
  • 举报
回复
文件名和路径都能得到,但就是上传不上去,怎么回事呢?
闲鱼野鹤-PJY 2013-09-30
  • 打赏
  • 举报
回复
引用 4 楼 lishikai500 的回复:
[quote=引用 2 楼 u010684923 的回复:] 这是前台表单
<form action="upload" method="post" enctype="multipart/form-data">
	姓名:<input name="name">
	<br/>
	上传文件:<input type="file" name="upload">
	<br />
	<input type="submit" value="提交" />
	</form>
谢谢 基本看明白了 加了 common-io.jar common-upload.jar 两个包就能用了[/quote] 我的失误,忘跟你说引jar包了
lishikai500 2013-09-30
  • 打赏
  • 举报
回复
引用 2 楼 u010684923 的回复:
这是前台表单
<form action="upload" method="post" enctype="multipart/form-data">
	姓名:<input name="name">
	<br/>
	上传文件:<input type="file" name="upload">
	<br />
	<input type="submit" value="提交" />
	</form>
谢谢 基本看明白了 加了 common-io.jar common-upload.jar 两个包就能用了
闲鱼野鹤-PJY 2013-09-30
  • 打赏
  • 举报
回复
这是前台表单
<form action="upload" method="post" enctype="multipart/form-data">
	姓名:<input name="name">
	<br/>
	上传文件:<input type="file" name="upload">
	<br />
	<input type="submit" value="提交" />
	</form>
闲鱼野鹤-PJY 2013-09-30
  • 打赏
  • 举报
回复

public class UploadServlet extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@SuppressWarnings("unchecked")
	public void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		// step1,创建一个DiskFileItemFactory对象
		// 为解析器提供解析时的缺省的配置。
		DiskFileItemFactory dfif = new DiskFileItemFactory();
		// step2,创建一个解析器
		ServletFileUpload sfu = new ServletFileUpload(dfif);
		// step3,使用解析器解析
		try {
			// FileItem对象封装了一个表单域当中的所有的
			// 数据。

			List<FileItem> items = sfu.parseRequest(request);
			for (int i = 0; i < items.size(); i++) {
				FileItem item = items.get(i);
				// 要判断是一个普通的表单域还是
				// 上传文件域
				if (item.isFormField()) {

					// 是一个普通的表单域
					String name = item.getFieldName();
					String value = item.getString();
					System.out.println(name + ":" + value);
				} else {
					// 上传文件域,要将文件保存在服务器端
					ServletContext sc = this.getServletContext();

					// 获得实际部署时物理路径
					String path = sc.getRealPath("upload");
					System.out.println(path);
					// 获得上传文件的名称
					String fileName = item.getName();
					System.out.println(fileName);
					File file = new File(path + "//" + fileName);
					System.out.println(file);
					item.write(file);
				}
			}

		} catch (Exception e) {
			e.printStackTrace();

		}
	}

}
这能看明白么?

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧