老师我这个没反应啊,你帮我看看

老师我这个没反应啊,你帮我看看

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<h1>文件上传</h1>

<form action="${pageContext.request.contextPath}/UploadServlet" method="post" enctype="multipart/form-data">

<input type="text" name="name"><br/>

<input type="file" name="upload"><br/>

<input type="submit" value="上传">

</form>

</body>

</html>



package com.imooc.servlet;


import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.util.List;


import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;


import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.FileUploadException;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

import org.apache.commons.fileupload.servlet.ServletFileUpload;



@WebServlet("/UploadServlet")

public class UploadServlet extends HttpServlet {

private static final long serialVersionUID = 1L;



protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

DiskFileItemFactory dis=new DiskFileItemFactory();

System.out.println("程序成功运行");

ServletFileUpload fileupload=new ServletFileUpload(dis);

try {

List<FileItem> list=fileupload.parseRequest(request);

for(FileItem fileItem:list){

if(fileItem.isFormField()){

String name=fileItem.getFieldName();

String value=fileItem.getString("UTF-8");

System.out.println(name+" "+value);

}else {

String fileName=fileItem.getName();

InputStream is=fileItem.getInputStream();

String path=getServletContext().getRealPath("/upload");

System.out.println(path);

OutputStream os=new FileOutputStream(path+"\\"+fileName);

int len=0;

byte[] b=new byte[1024];

while((len=is.read())!=-1){

os.write(b, 0, len);

}

is.close();

os.close();

}

}

} catch (FileUploadException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}


}



http://img1.sycdn.imooc.com//climg/5e1426fc09f9d86312220669.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕酷酷 2020-01-07 16:19:19

同学你好,因为这里是以post方式进行过提交的表单,而我们的代码编写的doGet()方法中,所以我们要在doPost()方法中,将请求发送给doGet()方法中。

具体如下:

http://img1.sycdn.imooc.com//climg/5e143e9709797d2011110086.jpg

修改如下:

http://img1.sycdn.imooc.com//climg/5e143e8009a20bb005870118.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕酷酷 2020-01-07 15:10:53

同学你好,这里同学没有反应,应该是在while循环中,应该每次读取1024个字节,进行写入,也就是应该传入字节数组 b,而同学没有传入。

具体如下:

http://img1.sycdn.imooc.com//climg/5e142e5909fdc8df04650151.jpg

然后在重新运行项目,访问jsp页面,进行上传文件。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


  • 输入进去了,但是不会还是没反应啊,还是老样子,是不是哪里我还设置错了
    2020-01-07 15:52:56
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师