how to get an arbitrary file from an HTTP request

2019-06-10 13:07发布

问题:

I am trying to set up a web service in grails that can accept a file. How do I get the file from the request?

I am testing this with something like

curl -d somefile.tar http://localhost:8080/MyWebS/fileWS

and my method looks like the following:

def index = {
    switch(request.method){
    case "POST":
    render "Ingesting file\n"
    request.each {
    println("--> " + it)
    }
    def uploadedFile = request.getFile() //<--this is the line that doesnt work..what should it be?
    File f=new File('c:/dev/newfile.tar');
    uploadedFile.transferTo(f);

    break
    }
}

回答1:

What happens if you try

curl -F file=@somefile.tar http://localhost:8080/MyWebS/fileWS

And then on the grails side

def uploadedFile = request.getFile( 'file' )