为什么我的图片上传不起作用

时间:2014-08-05 04:02:25

标签: javascript php jquery ajax

我需要将下载的图像上传到下一页底部的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;
    }
}

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您无法使用普通的ajax上传文件。您应该使用插件。您可以使用ajaxFileUploader插件。这对我来说很好。

Here is the link

ajax File uploader