2017-03-07 47 views
0

我想拍攝一張圖片的網址,並使用它來獲取圖片文件對象並將其發送到我的服務器。我環顧四周,已經得到了這麼多,但代碼無法正常工作。當我將它發送到我的服務器時,它不會作爲圖像文件上傳,而只是上傳爲不帶.JPG擴展名或任何圖像文件擴展名的文件。從圖片網址創建圖片文件對象

var byteNumbers = new Array(this.imgUrl.length); 

    for (var i = 0; i < this.imgUrl.length; i++) 
    { 
     byteNumbers[i] = this.imgUrl.charCodeAt(i); 
    } 

    this.img = new File(byteNumbers, "imgFromUrl", { type: "image/jpeg" }); 

這獲取文件並顯示我的日誌文件詳細信息,如lastmodified,filename等。但是當我上傳到我的服務器時,我只是得到一個沒有擴展名的文件,如上所述。

該文件正在上傳附加到一個窗體併發送到服務器。這是因爲我也發送其他數據。

this.http.post(this.serverUrl + "face/detect/", data, { headers: this.headers }) 
      .toPromise() 
      .then(response => response.json()) 
      .catch(error => error); 
+0

請分享您使用的代碼上傳文件到您的服務器 –

+0

@PatrickHund我知道服務器代碼的作品,因爲我有一個文件選擇器使用相同的代碼,並且工作正常。但我希望能夠粘貼圖像的網址並上傳該圖像。 – lagfvu

+0

http://stackoverflow.com/questions/12405197/read-process-image-through-javascript-by-passing-its-url-similar-to-file-get檢查這一個,如果它有幫助:) –

回答

0

您需要在文件名

var byteNumbers = new Array(this.imgUrl.length); 

    for (var i = 0; i < this.imgUrl.length; i++) 
    { 
     byteNumbers[i] = this.imgUrl.charCodeAt(i); 
    } 

    this.img = new File(byteNumbers, "imgFromUrl.jpg", { type: "image/jpeg" }); 

告訴我,如果這個問題解決了指定推廣。

+0

對不起,這個沒有解決這個問題。 – lagfvu

+0

好吧向我們展示您如何上傳文件的代碼。 – CaptainHere