2016-06-20 5 views
0

im mit diesem Code AngularJS Datei auf meinen REST API zu laden, und es funktioniert gut, dies meine Form ist:wie Anforderung von Aktionsformular senden

<form action="webresources/documents/upload" 
     method="post" 
     enctype="multipart/form-data"> 

    <p> 
     Select a file : 
     <input type="file" name="file" size="45" /> 
    </p> 
    <input type="submit" value="Upload" /> 

</form> 

und das ist mein REST API:

@POST 
    @Path("/upload") 
    @Consumes(MediaType.MULTIPART_FORM_DATA) 
    public Response uploadFile(@MultipartForm Document document) { 
..... 
} 

meine Frage ist: wie die gleiche Anforderung mit AngularJS senden anstatt mit action = "webresources/documents/upload" auf meiner Form.

+0

Dieser Code hat nichts im Zusammenhang mit Winkel. Daher möchte ich Sie daran erinnern, dass SO nicht hier ist, um Code für Sie zu schreiben. Recherchieren Sie, schreiben Sie etwas eckigen Code und kommen Sie zurück, wenn Sie ein bestimmtes Problem haben. – rmlan

+0

Ich denke, er fragt, wie man eine Datei mit AngularJS hochlädt. Es ist nicht völlig irrelevant. – kensplanet

+0

Hallo @Michael Markidis, vielen Dank für Ihre Antwort, wenn Sie meine Frage gelesen haben, werden Sie es klar finden und ich habe ein spezifisches Problem, ich frage, wie ich meine Datei mit eckigen hochladen kann, ohne meine REST API aufzurufen Die Form Aktion = "", aber bitte versuchen Sie die Leute zu verstehen, bevor Sie sie angreifen, Grüße – James

Antwort

0

Sie keine Form Tag benötigen,

Dies ist, wie Sie Ihre HTML-wie, so etwas wie das wäre,

<p> 
     Select a file : 
     <input type="file" name="file" size="45" /> 
    </p> 
<button ng-click="upload()">Upload</button> 

Ihr Controller-Code

$scope.upload = function() { 
    var fd = new FormData(); 
    fd.append('file', file); 

    $http({ 
    url: 'webresources/documents/upload', 
    data: fd, 
    method: "POST", 
    headers: { 
     "Content-Type": undefined 
    } 
    }); 
} 
aussehen würde

Dies wird Ihre Datei auf den Server ohne Form Tags hochladen.

+0

Hallo @Kensplanet, danke für die Antwort, aber ich habe einen Fehler "ReferenceError: Datei ist nicht definiert", bitte wo ist die Deklaration der Variable Datei? – James

+0

Sie müssen die Logik gemäß dieser Stackoverflow-Antwort implementieren - http://stackoverflow.com/questions/17922557/angularjs-how-to-check-for-changes-in-file-input-fields – kensplanet

Verwandte Themen