2012-03-15 171 views
0

我正在構建一個圖像縮放器,它使用jcrop一個jQuery插件以及php和ajax來上傳和裁剪/縮放圖像。當他應該保存和裁剪/縮放圖像時,我會一直存在一個隨機錯誤,問題是隨機的,因爲我可以使用相同的圖像10次,以相同的方式裁剪相同的尺寸,並且它在10次中的9次中,但時間它不工作,我得到這個錯誤:imagecreatefromjpeg()縮放圖像

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg, libjpeg: recoverable error: Premature end of JPEG file
in /home/users/A006193/fgpostbus.nl/www.fgpostbus.nl/uploader/scale.php on line 9

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: 'upload/cfd962453a1409fd59dfd5e6230e869eheaderFac12348.jpg' is not a valid JPEG file in /home/users/A006193/fgpostbus.nl/www.fgpostbus.nl/uploader/scale.php on line 9

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/users/A006193/fgpostbus.nl/www.fgpostbus.nl/uploader/scale.php on line 13

圖像獲取保存有MD5,之後你需要裁剪它,如果它不是它必須有當裁剪的數據被髮送到擴展所需的大小.php scale.php包含php來執行最後一個操作(裁剪,縮放和保存)我使用ajax發佈php應該使用的細節。它就會發出這樣的:

x=354&y=0&w=245&h=245&url=upload%2Fcfd962453a1409fd59dfd5e6230e869eheaderFac12348.jpg&setW=160&setH=160 

finaly我scale.php看起來是這樣的:

<?php 

if ($_SERVER['REQUEST_METHOD'] == 'POST') 
{ 
$src = $_POST['url']; 
$targ_w = $_POST['setW']; 
$targ_h = $_POST['setH']; 
$img_r = imagecreatefromjpeg($src); 
$dst_r = ImageCreateTrueColor($targ_w, $targ_h); 

imagecopyresampled($dst_r,$img_r,0,0,$_POST['x'],$_POST['y'], 
$targ_w,$targ_h,$_POST['w'],$_POST['h']); 

imagejpeg($dst_r, $src, 90); 
exit; 
} 

?> 

問題做我的頭sinds它沒有給予錯誤的任何百通,即時得到它完全隨機,所以如果有人會有一個建議,我可能做錯了,那麼請讓我知道。

回答

0

此路徑upload%2Fcfd962453a1409fd59dfd5e6230e869eheaderFac12348.jpg在服務器端嗎?

因爲如果沒有,你需要上傳實際的二進制文件;只在URL中傳遞文件名不起作用。

你可能想看看這裏:POST method uploads

+0

但*可以*工作,如果你通過了圖像的URL和正確配置你的PHP。 – 2012-03-15 12:53:42

+0

YEA其路徑中的服務器上 – Holapress 2012-03-15 12:56:42

+0

而且,[imagejpeg](http://php.net/manual/fr/function.imagejpeg.php)的第二個參數是將文件保存到的路徑。我不確定你在這裏做什麼。 – 2012-03-15 13:00:51

0

而是假設圖像和遠程服務器是否按預期工作,你應該使用curl本地下載的圖像,然後對其進行處理,處理任何錯誤,你可以沿途遇到的。

0

試試這個

 

ini_set('gd.jpeg_ignore_warning', 1); 
 

imagecreatefromjpeg()