为什么我的图像上传不工作

Why is my image upload not working

本文关键字:工作 我的 图像 为什么      更新时间:2023-09-26

我需要上传的图像上传到dropzone元素在下面的页面底部:

>

在我的插入按钮中,我得到每个图像的srcfilenames如下所示:

var img_arr = [];
var img_arr_filenames = [];
var i=0;
$("#my-dropzone img").each(function(){
   img_arr.push(this.src);
   img_arr.push("%imgend%");
   img_arr_filenames.push(this.alt);
   img_arr_filenames.push("%filenameend%");
});
var imgs = img_arr;
var img_names = img_arr_filenames;

,然后通过ajax将信息发送给PHP函数:

$.ajax({
    url: 'http://betastream.com.au/skybidv3/auth/insert_auction/',
    type: 'POST',  
    data: (imgs:imgs, img_names:img_names}), 
    success: function(html) {
      alert("Auction Added");
    }
})  

并尝试写图像在php函数,但没有图像写在服务器上,我做错了什么?

function insert_auction()
{ 
    $img_names_array = explode("%filenameend%", $_POST['img_names']);
    $imgs_array = explode("%imgend%", $_POST['imgs']);
    $i = 0;
    foreach ($imgs_array as $temp)
    {
        $img = $temp;
        $img = str_replace('data:image/png;base64,', '', $img);
        $img = str_replace(' ', '+', $img);
        $data = base64_decode($img);
        $file = 'testimage.png';//$img_names_array[$i];
        $success = file_put_contents($file, $data);
        $i = $i+1;
    }
}

您尝试只将文件url发送到服务器,而不发送图像本身。要将图像作为二进制数据上传,您可以使用form multipart并使用js发布表单。有很多现有的文件上传器,例如Dropzone.js你可以使用其中一个。

你不能使用普通ajax上传文件。你应该使用插件,你可以使用ajaxFileUploader插件。这对我来说很好。

Here is the link
文件上传器