鍍金池/ 問答/PHP  HTML/ 如何不透過 input 也抓到每個 img 的值?並且下載到 server 中?

如何不透過 input 也抓到每個 img 的值?並且下載到 server 中?

這是我找到的資源
http://jsfiddle.net/qF7Ff/

我現(xiàn)在的做法是一樣用 js 的filereader去產(chǎn)生每個 base64 網(wǎng)址
每一個預(yù)覽都是一個 input name=icon[]
然後後端再用這樣去接,去下載下來每個圖片
所以會是 <input name="icon[]" type="hidden" value="base64......">

foreach ($_POST['icon'] as $key => $value) {

      preg_match('/^(data:\s*image\/(\w+);base64,)/', $value, $result);
      $file_ext = '.'.$result[2];
      $file_name = $first['prod_id'].'-'.md5(rand());
      file_put_contents('../../images/product/'.$file_name.$file_ext, base64_decode(str_replace($result[1], '', $value)));

我找到的那個資源,裡面一樣是上傳,只是他產(chǎn)生的每一個物件都是 <img src="base64.......">
那我後端我要怎麼接才能下載這些圖片?
ajax 需要做什麼改變來接應(yīng)呢?

ajax

var formData = new FormData($('#form')[0]);

$.ajax({
        type: "POST",
        url: "xxx",
        data: formData,
        enctype: "multipart/form-data",
        cache: false,
        contentType: false,
        processData: false,
回答
編輯回答
我以為

你的問題讀起來比較費力,努力理解,你想將客戶端<input type=hidden>中的傳過來的base 64格式圖片保存到服務(wù)器上? 服務(wù)端這樣實現(xiàn)

foreach語句省略
    //匹配出圖片的格式
    if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $value, $result)){
        $type = $result[2];
        $path = "upload/";
        if(!file_exists($path))
        {
            //檢查是否有該文件夾,如果沒有就創(chuàng)建,并給予最高權(quán)限
            mkdir($path, 0700);
        }
        $new_file = $path . time() . ".{$type}";
        if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))){
            echo '保存成功:', $new_file;
        } else {
            echo '保存失敗';
        }
    }
2018年2月4日 05:23