获取上传的路径_JAVA学习笔记——fileUpload文件上传
时间: 2023-11-12 17:06:14 浏览: 60
在Java中获取上传的文件路径可以使用HttpServletRequest对象的getServletContext()方法获取当前应用程序的上下文路径,再加上上传文件的相对路径即可。
例如,假设文件上传的相对路径为“/upload”,则可以使用以下代码获取上传文件的完整路径:
```java
String filePath = request.getServletContext().getRealPath("/upload");
```
其中,request代表HTTP请求对象。通过该对象可以获取上传的文件信息,包括文件名、大小、类型等。getServletContext()方法返回Servlet上下文对象,而getRealPath()方法则返回指定相对路径的真实路径。
相关问题
java 上传文件_JAVA学习笔记——fileUpload文件上传
文件上传是Web开发中常见的功能之一,Java中也提供了多种方式来实现文件上传。其中,一种常用的方式是通过Apache的commons-fileupload组件来实现文件上传。
以下是实现文件上传的步骤:
1.在pom.xml文件中添加以下依赖:
```xml
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
```
2.在前端页面中添加文件上传表单:
```html
<form method="post" enctype="multipart/form-data" action="upload">
<input type="file" name="file">
<input type="submit" value="Upload">
</form>
```
3.在后台Java代码中处理上传文件:
```java
// 创建一个DiskFileItemFactory对象,用于解析上传的文件
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置缓冲区大小,如果上传的文件大于缓冲区大小,则先将文件保存到临时文件中,再进行处理
factory.setSizeThreshold(1024 * 1024);
// 创建一个ServletFileUpload对象,用于解析上传的文件
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置上传文件的大小限制,这里设置为10MB
upload.setFileSizeMax(10 * 1024 * 1024);
// 解析上传的文件,得到一个FileItem的List集合
List<FileItem> items = upload.parseRequest(request);
// 遍历FileItem的List集合,处理上传的文件
for (FileItem item : items) {
// 判断当前FileItem是否为上传的文件
if (!item.isFormField()) {
// 获取上传文件的文件名
String fileName = item.getName();
// 创建一个File对象,用于保存上传的文件
File file = new File("D:/uploads/" + fileName);
// 将上传的文件保存到指定的目录中
item.write(file);
}
}
```
以上代码中,首先创建了一个DiskFileItemFactory对象,用于解析上传的文件。然后设置了缓冲区大小和上传文件的大小限制。接着创建一个ServletFileUpload对象,用于解析上传的文件。最后遍历FileItem的List集合,判断当前FileItem是否为上传的文件,如果是,则获取文件名,创建一个File对象,将上传的文件保存到指定的目录中。
4.文件上传完成后,可以给用户一个提示信息,例如:
```java
response.getWriter().write("File uploaded successfully!");
```
以上就是使用Apache的commons-fileupload组件实现文件上传的步骤。需要注意的是,文件上传可能会带来安全隐患,因此在处理上传的文件时,需要进行严格的校验和过滤。
struts1 上传文件为null_JAVA入门:fileUpload文件上传
您好!关于Struts1上传文件为null的问题,可能是因为以下几个原因:
1. 表单中没有设置enctype属性为multipart/form-data,这样的话,上传文件的内容是不会被提交的。请确保您的表单中设置了正确的enctype属性。
2. Struts1中的ActionForm类必须继承org.apache.struts.action.ActionForm,并且必须包含一个类型为org.apache.struts.upload.FormFile的属性,用于接收上传的文件内容。请确保您的ActionForm类符合这些要求。
3. 如果您使用的是Struts1的默认文件上传插件,那么请确保您的struts-config.xml文件中已经正确地配置了该插件。例如:
```xml
<plug-in className="org.apache.struts.upload.CommonsMultipartRequestHandler"/>
```
以上是一些可能导致上传文件为null的常见原因,您可以仔细检查一下,看看是否有遗漏。如果还有问题,欢迎您随时向我提问。