java - REST Web Service 特定路径文件上传

标签 java web-services rest mule

我正在构建一个应用程序流程,其中客户端将文件上传到 RESTful Web 服务,该服务将文件保存到默认的预定义位置。

REST 资源的 Java 代码:

@Path("/file")
public class UploadFile {

    @POST
    @Path("/upload")
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public Response uploadFile(
            @FormDataParam("file") InputStream uploadedInputStream,
            @FormDataParam("file") FormDataContentDisposition fileDetail) {

        String uploadedFileLocation = "D:/uploaded/" + fileDetail.getFileName();

        // save
        writeToFile(uploadedInputStream, uploadedFileLocation);

        // ...
    }
}

客户端的代码是:

 <form action="http://localhost:8080/file/upload" method="post" enctype="multipart/form-data">
    <p>Select a file : <input type="file" name="file" size="50" /></p>
    <input type="submit" value="Upload" />
</form>

这对我来说效果很好,但现在我想对其进行编码,以便客户端可以决定文件的保存位置。如何将此位置从客户端传递到 REST 服务?为了接收参数,我们将使用 GET 方法,但在 REST 服务中调用 POST 方法,那么如何完成呢?

最佳答案

在您的表单中添加另一个输入以包含位置信息并作为额外的@FormDataParam接收。

当然,请严格验证位置,否则会带来重大安全风险。我个人很想尝试搞乱 /etc/passwd :)

关于java - REST Web Service 特定路径文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15792344/

相关文章:

Java compareTo 方法错误 :java. lang.Integer 无法转换为 java.lang.Boolean

python - 使用 asyncore 读取网站

c# - 在 .NET 中向 Web 服务中的单个文件写入问题

java - 基于带有 Spring WebMVC REST Controller 的接受 header 的不同响应实体主体

java - 使用 Javax Rest Api 返回视频

java - 如何在 java 中将 xml 分块为多个部分?

java - 使用 apache poi 读取 xlsx 时主线程中出现 NoSuchMethodError

java - 读取 java 中的二进制文件直到特定的 "%%EOF"标记?

json - 当服务器在 Heroku 上时,JSON 传输会自动加密吗?

java - Spring WebClient 放置映射 : Content type 'application/json' not supported