如何在cURL命令中执行POST以上传文件

时间:2017-02-17 12:50:11

标签: java web-services rest unix curl

我通过网络使用RestFul服务器上传文件并将我选择的字段复制到文件夹,但是当我尝试使用命令cUrl运行时使用相同的方法时,我认为是语法可能或如何将params传递给方法。

以下是方法:

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

    logger.debug(message);
    String uploadedFileLocation = C_HOME_TEST + fileDetail.getFileName();

    // save it
    writeToFile(uploadedInputStream, uploadedFileLocation);
    String output = "File " + fileDetail.getFileName() + " uploaded to : " + uploadedFileLocation;
    saveInFile(fileDetail.getFileName());
    return Response.status(200).entity(output).build();
}

这是命令:

curl  --form "fileupload=@filename.png" http://localhost:8080/RESTfulExample/rest/file

如果我从这个类中进行GET连接没有任何问题。

2 个答案:

答案 0 :(得分:0)

命令错误

curl -X POST -F 'file=@apple.png' http://localhost:8080/RESTfulExample/rest/file

答案 1 :(得分:-1)

命令:

curl -H 'Content-Type: multipart/form-data' -v -F 'file=@/path/to/theFile' http://localhost:35681/api 

参数说明:

-H  --header <header/@file>  Pass custom header(s) to server
-v  --verbose                Make the operation more talkative
-F  --form <name=content>    Specify multipart MIME data

有关更多详细信息,您可以通过终端上的curl查看curl --help文档。