当前位置: 首页 > 知识库问答 >
问题:

无法使用servlet上传图像文件夹中的图像

柴宝
2023-03-14

我可以上传图片在数据库,但不能上传到“文件”文件夹。万维网

@WebServlet(name="AdminServlet",urlPatterns="/AdminServlet")
@MultipartConfig
public class AdminSevlet extends HttpServlet {

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

    
        try (PrintWriter out = response.getWriter()) {
                           UserDAO UserDAO = new UserDAO();
                           User User = new User();
                    String sid = request.getParameter("aid");
                    int id = Integer.parseInt(sid);
                    String userid = request.getParameter("userid");       
                    String password = request.getParameter("password");
                    String fname = request.getParameter("fname");
                    String ic = request.getParameter("ic");            
                    String gender = request.getParameter("gender");            
                    String dob = request.getParameter("dob");           
                    String addr = request.getParameter("addr");            
                    String email = request.getParameter("email");            
                    String phoneNo = request.getParameter("phoneNo");               
                    String dept = request.getParameter("dept"); 
                    String position = request.getParameter("position");
                    String eduqual = request.getParameter("eduqual");
                    String role = request.getParameter("role");
       
 Part part = request.getPart("file"); // Retrieves <input type="file" name="file">
String image = part.getSubmittedFileName();
 String path = getServletContext().getRealPath("./"+"web"+File.separator+"files"+File.separator+image);

            
            InputStream is = part.getInputStream();
            boolean succs = uploadFile(is, path);//

            User.setadmin_id(id);
            User.setuser_id(userid);
            User.setpassword(password);
            User.setuser_name(fname);
            User.setIC(ic);
            User.setGender(gender);
            User.setdob(dob);
            User.setAddress(addr);
            User.setemail(email);
            User.setphoneNo(phoneNo);
            User.setDepartment(dept);
            User.setPosition(position);
            User.setEducationbackground(eduqual);
            User.setRole(role);
            User.setimage(image);
            int result = UserDAO.addUser(User);                
            
           RequestDispatcher dispatcher = request.getRequestDispatcher("/view-user");
                      dispatcher.forward(request, response);
                
        }
    
}

  public boolean uploadFile(InputStream is, String path){
    boolean test = false;
    try{
        byte[] byt = new byte[is.available()];
        is.read();
        FileOutputStream fops = new FileOutputStream(path);
        fops.write(byt);
        fops.flush();
        fops.close();
        test = true;
    }catch (Exception e){
        e.printStackTrace();
    }
    return test;
    
}

这是图像上传servlet。一旦图像被上传,它就应该被插入到files文件夹中。我不知道我犯了什么错误。谁能告诉我出了什么问题吗?我需要添加上传目录或文件路径C:inside吗?

共有1个答案

鲍向笛
2023-03-14

在uploadFile方法中发现一个错误。您应该写到缓冲区,但没有发生,尝试这样(is.read(buffer);)

public boolean uploadFile(InputStream is, String path) {
    boolean test = false;
    try {
        byte[] buffer = new byte[is.available()];
        is.read(buffer);

        File targetFile = new File(path);
        OutputStream outStream = new FileOutputStream(targetFile);
        outStream.write(buffer);

        outStream.flush();
        outStream.close();
        test = true;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return test;

}
 类似资料:
  • 这是我的uploadimg.jsp,当我单击Upload时,它会转到fileupload.java,上传的图像必须存储在我指定的文件夹AppImages中,我如何做到这一点?谢谢你的帮助。

  • 问题内容: 我正在使用Chrome驱动程序使用nightwatch.js运行前端测试。我需要测试图像上传是否正常工作,大概是通过提供的文件输入来进行的,因为在成功发布后会运行回调。 我知道可以使用Selenium Web驱动程序的sendKeys方法来完成。 您如何使用javascript和nightwatch.js完成此操作?您可以访问Selenium Webdriver或与其相关的界面吗? 问

  • 当我登录应用程序后尝试将文件上传到应用程序时,我遇到了这个问题,手动上它工作正常,但当我尝试使用jeter上传文件时,我遇到了错误,你能帮帮我吗? Jmeter HTTP的截图 我已经使用了常见的方法上传文件,但我仍然收到消息,没有文档存在错误。Http请求截图 运行我的脚本后,我收到了这个请求和响应请求响应 但是,在成功提交时,它应该显示状态为true,消息显示为成功上传。浏览器开发人员工具的屏

  • 我在试图让Alamofire上传图像时被困了三天。其想法是,Alamofire将使用一些php代码将其发送到服务器。在不同的地方进行了大量的尝试和研究之后,一些代码应该可以工作,但是Alamofire的服务器端文档非常糟糕。 Swift 3最近的更新对明智的回答没有多大帮助... 这是我的Swift 3代码: 这应该上传到服务器上的图像,但我不知道如何正确地将图像保存在服务器上。服务器实际上不需要

  • 我在PhoneGap,我必须上传一个图像文件到我的服务器通过选择图像表单设备Galler,为此我尝试了ImagePicker,但没有工作。然后我尝试从打开android设备上的gallery的输入字段中选择文件,但我无法获得其完整的uri路径 请告诉我如何在服务器上上传文件并将上传的配置文件图像显示给用户

  • 当我上传图片时,我收到以下错误: 警告:move _ uploaded _ file(/images/profile 767 abb feae 82141 . jpg)[function . move-uploaded-file]:无法打开流:第5行的/Applications/XAMPP/xamppfiles/htdocs/core/functions/users . PHP中没有这样的文件或目