- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我需要在我的项目中上传图片。 SpringMVC中如何获取上传路径。路径是;
/home/cme/project/eclipse/workspace_12_11/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/fileUploadTester/upload
以下错误;
The method getServletContext() is undefined for the type HomePageController
在我使用此代码时出现;
String uploadPath = getServletContext().getRealPath("") + File.separator + UPLOAD_DIRECTORY;
我的代码是
public ModelAndView UploadPhoto(@ModelAttribute User user, HttpServletRequest request, HttpServletResponse response) throws IOException {
final String UPLOAD_DIRECTORY = "upload";
final int THRESHOLD_SIZE = 1024 * 1024 * 3; // 3MB
final int MAX_FILE_SIZE = 1024 * 1024 * 40; // 40MB
final int MAX_REQUEST_SIZE = 1024 * 1024 * 50; // 50MB
String value[] = new String[10];
int i = 0;
// checks if the request actually contains upload file
if (!ServletFileUpload.isMultipartContent(request)) {
PrintWriter writer = response.getWriter();
writer.println("Request does not contain upload data");
writer.flush();
return; //here is error This method must return a result of type ModelAndView
}
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(THRESHOLD_SIZE);
factory.setRepository(new File(System.getProperty("java.io.tmpdir")));
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setFileSizeMax(MAX_FILE_SIZE); //here error The method setFileSizeMax(int) is undefined for the type ServletFileUpload
upload.setSizeMax(MAX_REQUEST_SIZE);
String uploadPath = getServletContext().getRealPath("") + File.separator + UPLOAD_DIRECTORY; // here error The method getServletContext() is undefined for the type Homepage Controller
// creates the directory if it does not exist
File uploadDir = new File(uploadPath);
if (!uploadDir.exists()) {
uploadDir.mkdir();
}
try {
List < FileItem > items = upload.parseRequest(request); // request is HttpServletRequest
for (FileItem item: items) {
if (item.isFormField()) { // text fields, etc...
String fieldName = item.getFieldName();
System.out.print("fieldname" + fieldName);
value[i] = item.getString();
System.out.print("from uploader" + value[i]);
i++;
} else {
//String fileName=new File(item.getName()).getName(); Use this to use default file name
String name = value[0];
System.out.println("file uploader name" + name);
String filePath = uploadPath + File.separator + name;
System.out.println(filePath);
File storeFile = new File(filePath);
try {
item.write(storeFile);
} catch (Exception ex) {
}
}
}
System.out.println("uploaded successfully");
} catch (Exception ex) {
System.out.println("error not uploaded");
}
return new ModelAndView("ChangePhoto");
}
三个错误
最佳答案
使用下面的代码在 SpringMVC 中 Autowiring ServletContext
对象
@Autowired
ServletContext context;
然后尝试像这样执行你的代码
String uploadPath = context.getRealPath("") + File.separator + UPLOAD_DIRECTORY;
您可以像这样在 Controller 中获取它;
private ServletContext context;
public void setServletContext(ServletContext servletContext) {
this.context = servletContext;
}
但为此,您的 Controller 必须实现 ServletContextAware
接口(interface)
关于java - 如何在spring mvc Controller 中获取getServletContext(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26923907/
这个问题在这里已经有了答案: Different ways to get Servlet Context (1 个回答) 关闭 6 年前。 我有 SampleServlet 类,在其中我重写了 do
我已经看到您也可以直接调用 getservletcontext() 并且也像这样 req.getsession().getservletcontext() 。 这两者有什么区别,我应该使用哪一个?有没
我有一个 Tomcat 6 实例在我的本地机器上运行。 我对其配置进行了以下更改: 在/conf/context.xml – 如下更改标签 在/conf/server.xml – 更改标签如下 假
html Murach's Java Servlets and JSP Thanks for joining our email list H
我知道这个问题已被问过一百万次并且有 500 万个答案 - 一些或其中的信息非常丰富。这些都没有解决这个问题。 我的目标与许多其他目标类似 - 我想访问网络应用程序运行时环境中的文件 - 图像、svg
我是一名菜鸟程序员,正在为 tomcat 在 eclipse 上开发我的第一个动态 Web 应用程序。它与 mySQL 数据库通信并修改一些模板文件并将它们另存为新文件。该应用程序需要便携。我知道绝对
我正在尝试使用 getServletContext().getRealPath( "/") ,但我不断收到此错误: 找不到符号符号:方法 getServletContext()位置:接口(interf
这个问题已经有答案了: Recommended way to save uploaded files in a servlet application (2 个回答) 已关闭 8 年前。 这是我的情况
背景:我想通过使用 Velocity 和 servlet 来学习 Web 开发。我使用 getServletContext().getRealPath("/") 查找 WEB-INF 的路径以及存储在
以下代码是我的示例 servlet 应用程序 protected void doGet(HttpServletRequest request, HttpServletResponse response
我要获取servletContext在 Java 类中从 WEB-INF 读取文件目录。我用 HttpServlet 扩展了我的类(class)并尝试获取如下代码中的上下文,但 servlet 配置返
当尝试像这样设置 Context 属性时: void init() { String testing = new String(); testing = "This is a test
getServletContext.getRealPath("string") 抛出空指针异常。我如何使用它来获取真实路径? public void doGet(HttpServletRequest
我一直在编写一个脚本来构建项目、创建 War 文件并将其部署到 Tomcat 上。我在执行脚本时收到以下错误,特别是在 javac 命令期间。请注意,我尝试在没有 Eclipse 的情况下进行此操作,
本文整理了Java中org.directwebremoting.WebContext.getServletContext()方法的一些代码示例,展示了WebContext.getServletCont
我的生产应用程序位于某个域名 ABC.com 上。在我的代码中,我根据某些操作将用户重定向到其他页面 response.sendRedirect(request.getServletContext()
我正在努力将现有应用程序从 Spring Boot 1.5 升级到 2.1。此应用程序作为 WAR 文件部署在现有 Tomcat 实例中。 我已经克服了大部分迁移障碍,但现在当 Thymeleaf 的
ServletContext context=getServletContext(); 这里 ServletContext 是接口(interface)。 Context是ServletContext
我有一个MainServletContext,它实现了存储属性的ServletContextListener public void contextInitialized(ServletContext
下面是 GenericServlet 类中的 2 个方法, public ServletConfig getServletConfig() { return this.conf
我是一名优秀的程序员,十分优秀!