0
我有一個表單,其中內容兩個輸入一個隱藏的名稱=「動作」,第二個名稱=「頭像」類型=「文件」。 用戶在頭像輸入中選擇文件後,圖像將轉換爲blob。 我該如何發佈blob,因爲它是作爲一個文件加載和submited後?如何將blob作爲使用javascript的文件進行POST?
形式:
<form enctype="multipart/form-data" method="post" id="avatarform">
<input type="hidden" name="action" value="save" />
<input id="coolButton" name="avatar" type="file" accept="image/*" class="form-control" placeholder="">
</form>
我有嘗試:
var fd = new FormData();
fd.append('action', 'save');
fd.append('avatar', file.name);
fd.append('data', blob);
$.ajax({
type: 'POST',
url: '/',
data: fd,
processData: false,
contentType: false
}).done(function(data) {
console.log(data);
});
PHP控制器:
if ($_FILES['avatar']['name']) {
if ($profile->avatar==1) {
unlink('/images/avatars/'.$profile->avatar);
$profile->avatar=0;
}
$filename="avatar_".$user_id.'.'.pathinfo($_FILES['avatar']['name'], PATHINFO_EXTENSION);
move_uploaded_file($_FILES['avatar']['tmp_name'],$_SERVER['DOCUMENT_ROOT'] ."/images/avatars/".$filename);
$profile->avatar=$filename;
}
但是PHP控制器不保存它。如果我使用沒有腳本的表單,將圖像轉換爲blob - 它工作良好並保存文件。
請提供加載文件的一些代碼 – henrybbosa
file.name =名稱; blob = data:image/png; base64,.............. [binarycode]; 只有這部分代碼使POST操作,其他代碼更新blob。 我只是想獲得更新圖像提交表單的方法。 – Mike