用户选择一个带有文件的图像。然后,我会动态创建一个表单,其中包含所选文件的数据img,并将其放置为 标签的源。稍后,当用户按下提交按钮时,我会创建一个FormData对象。并从DataUri中获取一个blob。
以下是查找正确图像的代码,它可以有多个。
对我来说返回 null。 对于 同样如此。
我该如何将它保存在例如/uploads/images/1路径下?
以下是查找正确图像的代码,它可以有多个。
var images = [];
$('#imgDiv'+id+' img').each(function(index, img){
images[index] = dataURItoBlob(img.src);
});
还有dataURItoBlob函数
function dataURItoBlob(dataURI) {
var binary = atob(dataURI.split(',')[1]);
var array = [];
for(var i = 0; i < binary.length; i++) {
array.push(binary.charCodeAt(i));
}
return new Blob([new Uint8Array(array)], {type: 'image/*'});
}
然后我将图片附加到formData中。
formData.append('images[]',images);
并执行此操作
var req = new XMLHttpRequest();
req.open('post','/ads/add');
req.send(formData);
同时涉及 PHP 和 Laravel。我尝试了以下方法:
$images = Input::file('images[]');
对我来说返回 null。 对于 同样如此。
$images = Input::file('images');
当我尝试这样做时
$images = Input::get('images');
当作为JSON响应时,它返回的是["[object Blob]"]。而当作为dd()输出时,则返回:
<pre class='xdebug-var-dump' dir='ltr'>
<b>array</b> <i>(size=1)</i>
0 <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'[object Blob]'</font> <i>(length=13)</i>
</pre>
我该如何将它保存在例如/uploads/images/1路径下?