Rumah > Soal Jawab > teks badan
Perniagaan sedia ada sepenuhnya menggunakan aplikasi muka depan Angular.JS satu halaman, dan semua permintaan dihantar melalui ajax.
Sekarang saya mahu memuat naik fail terus ke Youpaiyun pada bahagian klien Saya mencuba muat naik fail sudut, tetapi hasil yang diserahkan ialah
400: tidak terima, terlepas tandatangan
Tangkapan paket mendedahkan bahawa data borang untuk dasar dan tandatangan tidak diserahkan sama sekali.
Inilah yang saya tulis:
$scope.onFileSelect = function ($files) {
var file = $files[0]; //这里我只传单个文件
$scope.upload = $upload.upload({
url: 'http://v0.api.upyun.com/youguess',
method: 'POST',
headers: {'Content-Type': 'multipart/form-data'},
data: {
signature: 'youguess',
policy: 'youguess'
},
fileFormDataName: 'file',
file: file,
formDataAppender: function (formData, key, value) {
if (angular.isArray(value)) {
angular.forEach(value, function(v) {
formData.append(key, v);
});
} else {
formData.append(key, value);
}
}
}).progress(function (event) {
console.log(parseInt(100.0 * event.loaded / event.total));
}).success(function (data, status, headers, config) {
console.log(data);
});
};
Saya merujuk kepada ini dan isu ini projek github ini
apa yang perlu saya lakukan?
Saya juga ada dua soalan:
世界只因有你2017-05-15 16:51:07
Merujuk isu ini
Selagi isu keselamatan tandatangan diselesaikan, fail boleh dimuat naik dengan jayanya. Terima kasih semua.
Penyelesaian:
为情所困2017-05-15 16:51:07
hai Biar saya jawab dua soalan anda yang seterusnya dahulu:
tandatangan termasuk form_api_secret
, jadi jika anda menulisnya terus di bahagian hadapan, memang akan ada isu keselamatan: jika orang lain mendapat form_api_secret
anda, mereka boleh menulis borang mereka sendiri dan menyerahkan fail ke ruang anda dan menggunakan trafik anda.
dasar boleh dijana pada bahagian hadapan menggunakan base64. Walaupun dasar ialah kandungan parameter pengekodan dan tiada isu keselamatan, tetapi disebabkan $signature = md5($policy.'&'.$form_api_secret);
, isu keselamatan yang disebutkan di atas masih akan berlaku.
Mengenai soalan kod, @PenaFong telah dijemput untuk menjawabnya.
PHP中文网2017-05-15 16:51:07
Tandatangan dijana dengan meminta bahagian belakang seperti yang diperlukan, dan form_api_secret akan didedahkan apabila dikira pada bahagian hadapan
给我你的怀抱2017-05-15 16:51:07
http://stackoverflow.com/questions/24443246/angularjs-how-to-upload-multipart-form-data-and-a-file
http://uncorkedstudios.com/blog/multipartformdata-file -muat naik-dengan-angularjs