当前位置: 首页 > 知识库问答 >
问题:

无法用jersey上传文件

朱刚捷
2023-03-14

我使用这个网络服务上传一个文件使用泽西

public class upload {
@POST
@Path(value = "upload")
@Consumes("image/jpg")
public Response uploadPng(File file) throws IOException {
    file = new File("C:/Users/Marwa/Desktop/Capture.jpg");
    String uploadedFileLocation = "C:/Users/Desktop/" + file.getName();
    DataInputStream diStream =new DataInputStream(new FileInputStream(file));
    long len = (int) file.length();
    byte[] fileBytes = new byte[(int) len];
    int read = 0;
    int numRead = 0;
    while (read < fileBytes.length && (numRead =diStream.read(fileBytes, read,fileBytes.length - read)) >= 0) {
        read = read + numRead;
    }

//省省吧

    writeToFile(diStream, uploadedFileLocation);
    System.out.println("File uploaded to : " + uploadedFileLocation);
    return Response.status(200).entity(file).build();
  }

//将上传的文件保存到新位置

private void writeToFile(InputStream uploadedInputStream,String uploadedFileLocation) {
    try {
        OutputStream out =new FileOutputStream(new File(uploadedFileLocation));
        int read = 0;
        byte[] bytes = new byte[1024];
        out = new FileOutputStream(new File(uploadedFileLocation));
        while ((read = uploadedInputStream.read(bytes)) != -1) {
            out.write(bytes, 0, read);
        }
        out.flush();
        out.close();
    } catch (IOException e) {
        e.printStackTrace();}}}

当我执行我的代码我得到一个405错误!对这个问题有什么建议吗?

共有2个答案

方鸿振
2023-03-14

不确定这是否是完美的解决方案。但通过以下方法解决了类似的问题。

首先,你应该用

public Response uploadPng(FormDataMultiPart multiPart) throws IOException {

下一步避免405错误添加

@Produces(MediaType.TEXT_PLAIN) 

以上是上传PNG方法。

淳于健
2023-03-14
public Response uploadPng(FormDataMultiPart multiPart) throws IOException {

上传文件时,应该在调用的方法中传递FormDataMultiPart参数。

 类似资料:
  • 我的nexus公开了一个REST API来上传文件。通过curl,我可以使用以下命令上传: 卷曲-X柱“http://myurl:9086/service/rest/v1/components?repository=ebooks-store“-H”accept:application/json“-H”内容类型:multipart/form data“-F”raw。目录=测试“-F”原始。asset

  • 开始时,我可以通过以下curl请求上传我的文件: curl-u“admin:admin”-X POSThttp://myurlu:9086/service/rest/v1/components?repository=ebooks-store“-H”accept:application/json“-H”内容类型:multipart/form data“-F”raw。目录=测试“-F”原始。asset

  • 我可以从我的应用程序上传。docx文件到google drive,但当我试图上传。doc文件时,出现了这个错误: 出现错误:调用POST https://www.googleapis.com/upload/drive/v2/files时出错?uploadtype=multipart&key=aizasycm1wqpp05lbrjkspxdthjs8lz6wleowlu:(400)提供的mime类型

  • 当我试图上传文件到泽西岛时,我发现下面有一些异常,请帮助我解决。谢谢 html文档:- 阿贾克斯:- Java代码:- 例外情况:- 2015年6月17日下午7:55:34组织。阿帕奇。卡塔琳娜。果心StandardWrapperValve调用 请求头:-

  • 我正在使用Selenium WebDriver和PhantomJs(C#)。在此之前,我使用FireFox而不是PhantomJs,并以以下方式上传了一个文件: 我的问题: 然而,当我使用PhantomJS时,这将崩溃。 在我看来,对于许多使用PhantomJS+Selenium的人来说,这是一个常见的问题,这让我想知道为什么这个bug还没有得到修复。

  • 我的JSP页面是这样的: 以下是我的java代码: 返回。我真的不知道原因。