前端上传文件及其他数据后台无法获取(已解决)

由于Tomcat对于文件上传的请求做了处理,所有直接getParameter是获取不到的。由于我用的是servlet3.0,所以加了一个注解就可以了。贴代码:

package servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.ibatis.session.SqlSession;

import bean.VideoFile;
import util.Json;

/**
 * Servlet implementation class VideoFileUploadServilet
 */
@MultipartConfig()    //就是这个注解,让我的servlet可以通过getParameter获得参数
@WebServlet("/VideoFileUploadServlet")
public class VideoFileUploadServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public VideoFileUploadServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		VideoFile file = new VideoFile();
		file.input(request);
		
		String statement="mapping.VideoFileMapper.insertFile";
		file.setSavePath(util.FileUtil.fileUpload(request, this,"Video"));
		
		System.out.println(file);
		
		SqlSession session=util.DataUtil.getSqlSession();
		session.insert(statement,file);
		session.commit();
		session.close();
		Json json = new Json();
		System.out.println(file);
		json.addValue("isSuccess", file.getSavePath() != null);
		PrintWriter pw = response.getWriter();
		pw.println(json.getJSONArray());
		pw.close();
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}


### 回答1: 可以使用Vue和SpringBoot来获取前端页面上传文件的本地路径。首先,在Vue中,可以使用input标签的change事件获取上传文件的本地路径,然后将本地路径传递到SpringBoot后台。具体操作可以参考Vue和SpringBoot的相关文档。 ### 回答2: 使用Vue和Spring Boot获取前端页面上传文件的本地路径的步骤如下: 1. 首先在Vue中使用`<input type="file">`元素创建一个文件上传输入框,让用户选择要上传文件。 2. 在Vue的组件中,使用`axios`或其他HTTP库将选择的文件发送到Spring Boot后台。 3. 在Spring Boot的Controller中创建一个接收文件的API接口,使用`@PostMapping`注解来处理POST请求,同时指定文件上传的路径。 4. 在接口方法中,使用`@RequestParam`注解获取前端发送的文件,并通过`transferTo`方法保存文件到指定路径。 5. 在Vue中,可以在文件上传成功后显示文件的本地路径,可以通过接口返回的数据中包含文件存储路径,然后在Vue组件中显示出来。 6. 在Vue中,可以通过接口返回的数据或者从服务器请求数据,将文件的本地路径显示在页面上,比如显示在一个列表或者详情中。 综上所述,通过使用Vue和Spring Boot,可以实现从前端页面上传文件后台获取文件的本地路径。Vue负责文件的选择和发送,Spring Boot负责接收和保存文件,并通过API接口返回文件的存储路径,Vue再将路径显示在前端页面上。 ### 回答3: 使用Vue和Spring Boot可以很方便地获取前端页面上传后台文件本地路径。具体步骤如下: 1. 前端页面使用Vue框架编写,可以使用Vue的文件上传组件,比如`element-ui`的`el-upload`组件。在组件的`before-upload`钩子函数中,可以通过`FormData`对象将文件上传后台。同时,将`file`对象作为参数传递给后台。 2. 后台使用Spring Boot框架编写,可以在Controller层定义一个`POST`请求的接口,接收前端传递过来的`file`对象。在Controller方法中,可以通过`@RequestParam("file") MultipartFile file`注解将文件对象转换为`MultipartFile`类型,方便后续操作。 3. 在后台Controller方法中,可以调用`MultipartFile`对象的`transferTo`方法,将文件保存到本地指定路径。可以使用`java.nio.file.Paths`类的静态方法`get`获取本地路径,再调用`MultipartFile`对象的`transferTo`方法指定文件保存的本地路径。 4. 完成文件保存后,将文件的本地路径返回给前端。可以使用`ResponseEntity`来包装返回结果,将保存的文件本地路径作为返回值返回给前端。 通过以上步骤,我们可以实现前端页面上传文件后台后,获取上传文件的本地路径。前端页面使用Vue完成文件上传后台使用Spring Boot接收处理文件上传请求,将文件保存到指定的本地路径,最后将文件的本地路径返回给前端。这样,我们就可以方便地获取上传文件的本地路径了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值