在获取到前段上传的图片,处理完写入本地路径文件夹upload中时,src/webapp/upload路径下是没有任何图片的=

在获取到前段上传的图片,处理完写入本地路径文件夹upload中时,src/webapp/upload路径下是没有任何图片的=

在获取到前段上传的图片,处理完写入本地路径文件夹upload中时,src/webapp/upload路径下是没有任何图片的,只有在out目录下的upload有照片,这个是哪里是出问题了吗???

相关截图:

http://img1.sycdn.imooc.com//climg/6058a6be090f818d05470845.jpg

相关截图:

http://img1.sycdn.imooc.com//climg/6058a79f0944361610550236.jpg

相关代码:

package com.roan.bms.controller;

import com.alibaba.fastjson.JSON;
import com.roan.bms.entity.Book;
import com.roan.bms.entity.BookC;
import com.roan.bms.service.BookService;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;

/**
* 图书新增
*/
public class AddBookServlet extends HttpServlet {
private BookService bookService = new BookService();

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
this.doGet(request, response);
}

/**
* 图书新增方法
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/*1.初始化FileUpload组件*/
FileItemFactory fileItemFactory = new DiskFileItemFactory();
/*FileItemFactory用于将前端表单的数据转换为一个个FileItem对象*/
/*ServletFileUpload则是为了FileUpload组件提供Java Web的Http请求解析*/
ServletFileUpload servletFileUpload = new ServletFileUpload(fileItemFactory);
Book book = new Book();
try {
List<FileItem> formData = servletFileUpload.parseRequest(request);
for (FileItem f : formData) {
/*表单项非文件项*/
if (f.isFormField()) {
System.out.println("普通输入项:" + f.getFieldName() + "-" + f.getString("UTF-8"));
switch (f.getFieldName()) {
case "name":
book.setBname(f.getString("UTF-8"));
break;
case "categoryId":
book.setCategoryId(Integer.parseInt(f.getString("UTF-8")));
break;
case "starLevel":
book.setStarLevel(Integer.parseInt(f.getString("UTF-8")));
break;
case "price":
book.setPrice(Float.parseFloat(f.getString("UTF-8")));
break;
default:
break;
}
} else {
/*将文件保存到服务器目录*/
String path = request.getServletContext().getRealPath("upload");
System.out.println("上传文件目录:" + path);
String fileName = UUID.randomUUID().toString();
/*f.getName()得到原始文件名,截取最后一个点后所有字符串*/
String suffix = f.getName().substring(f.getName().lastIndexOf("."));
System.out.println("截取后的名字:" + suffix);
/*f.write();写入目标文件*/
f.write(new File(path, fileName + suffix));
System.out.println(path + fileName + suffix);
book.setUrl("/upload/" + fileName + suffix);
}
}
bookService.insert(book);//新增
} catch (Exception e) {
e.printStackTrace();
}
/*查询全部的图书-动态查询*/
String name = null;
List<BookC> bookCList = bookService.getBookDynamic(name);
request.setAttribute("bookC_list", bookCList);
request.getRequestDispatcher("/book.ftl").forward(request, response);
}
}


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

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

2回答
好帮手慕阿满 2021-03-23 18:19:26

同学你好,不太明白同学的意思。同学是说前端页面中图片的路径怎么设置吗?上传的图片后会记录到数据库中,查询数据时会查询到数据库中的记录,将其返回给前端页面即可。

祝学习愉快~

好帮手慕阿满 2021-03-23 10:21:30

同学你好,这是正常的,上传图片是将图片上传到发布后的upload文件中,所以out目录下的upload文件中有图片,而src/webapp/upload路径下是没有图片。

祝学习愉快~

  • 提问者 大吉他 #1

    那上传的到前端的时候路径该怎么设置?

    2021-03-23 16:59:32
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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