2014-11-08 10 views
5

"dropbox" gibi bir bit CRUD uygulaması yapmaya çalışıyorum. Yani, paylaşım ve erişim işlevselliği ile dosya ve klasör barındıran olmalıdır. Görüntü ve video dosyalarını nasıl yükleyeceğim sorusu üzerine sıkışıp kaldım mı? İstemci tarafında dosyaların önizlemesini yapmak için Dosya API'sini (FileReader, Blob) kullandım, ancak bu tür bir veriyi sunucuya nasıl POST yapmayacağımı bilmiyorum. iyi çalışması gerekir böyleangularjs dosyasında RESTful hizmetine dosya yükleme

+0

kullanın [FormData] (https://developer.mozilla.org/en-US:

Sen açısal js ve dinlenme web hizmetini kullanarak dosya yüklemek için olası yolları için aşağıdaki anlamlara gelebilir/docs/Web/API/FormData) – aarosil

+0

Bu yüzden, FormData nesnesi oluşturmalı ve sonra da veriyi buraya ekleyip FormData nesnesini API'ma göndermeliyim? –

+0

Tam olarak, isterseniz örnek kodla daha ayrıntılı bir yanıt gönderebilirim. – aarosil

cevap

6

şey multipart/form-data istek olarak arka uç API göndermek için:

var file = ... // get from file input; 
var backendUrl = ... 
var fd = new FormData(); 

fd.append('myFile', file, 'filename.ext'); 

$http.post(backendUrl, fd, { 
    // this cancels AngularJS normal serialization of request 
    transformRequest: angular.identity, 
    // this lets browser set `Content-Type: multipart/form-data` 
    // header and proper data boundary 
    headers: {'Content-Type': undefined} 
}) 

.success(function(){ 
    //file was uploaded 
}) 

.error(function(){ 
    //something went wrong 
}); 

bakın burada referans için:

FormData API Doc

Using FormData Objects (MDN)

multipart-formdata file upload with AngularJS

+0

yapabilirseniz Çok faydalıdır. Yardımın için teşekkürler. –

+0

tarafından sağlanan en basit çözüm sayesinde, – FloydThreepwood

+1

"Dosya" varmible nasıl doldurulur? Ben mena, onu giriş kontrolüne nasıl bağlarım? – Nemus

0

ngFileUpload veya angularFileUpload direktiflerini kullanarak dosya yükleyebilirsiniz. angularFileUpload durumunda

, Eğer, bunun yerine bir tip uygulama/x-www-form-urlencoded içerik kullanmak, sen

da .http kullanımı kontrol ve ngFileUpload durumunda .upload kullanımı multipart sağlanan dosya büyük değil. Uygulama/x-www-form-urlencoded olması durumunda, normal inputStream olarak rest webservice değerini alabilir, böylece multipart verilerinin sıralanmasına gerek kalmaz.

http://technoguider.com/2015/08/file-upload-using-angular-js-and-rest-web-service/