我目前的做法
是在前台新增商品照片時可以多個上傳
每個圖片都會有一個 hidden input,裡面放的是 base64
<input type="hidden" name="icon[]" value="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAacAAAJ7CAYAAABH+15RAAAKsGlDQ1BJQ0MgUHJvZmlsZQAASImVlgdUU1kexu976Y0...">
然後在後端 php 用迴圈 file_put_contents 將其下載到指定目錄
foreach ($_POST['icon'] as $value) {
preg_match('/^(data:\s*image\/(\w+);base64,)/', $value, $result);
$typeThis = '.' . $result[2];
file_put_contents('../../images/product/cover-XXX'.$typeThis, base64_decode(str_replace($result[1], '', $value)));
只是這個字串長度真的讓人呵呵
然後如果上傳10MB以上的圖片,就直接不給過(應該是base64字串太長的關係,好像跟SIZE有關)
有沒有其他的方式有一樣的效果,但更乾淨的做法,可以不用那麼長?
可以用同樣的方式在後端抓取?前台又可以實現預覽?
先感謝各位大神!