0
我使用下面的代碼上傳數據URI保存JPG圖像創建上傳黑色圖像用PHP imagecreatefromjpeg
//width,new_width,height,new_height are set
$tmp_filename = $_FILES['file']['tmp_name'];
$image_p = imagecreatetruecolor($new_width, $new_height); //resample image
if(($ext=='jpg') | ($ext=='jpeg')){
//if image to be uploaded is jpg
$image = imagecreatefromjpeg($tmp_filename);
}
else{
//if image to be uploaded is png
$image = imagecreatefrompng($tmp_filename);
}
//to convert to jpg
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
$done=imagejpeg($image_p, $output_dirrectory."/".$image_name.".jpg",95); //95% quality
現在的問題是,當我保存圖像從使用的數據生成其他任何網站URI,它會以JPG圖像的形式保存在我的本地機器上。當我嘗試使用以下代碼上傳相同的圖像時,它會創建黑色圖像。
我無法弄清楚問題所在。我希望解決方案在於imagecreatefromstring,但我不知道如何解決以下代碼?請提出任何解決方案?
我認爲你需要發佈更多的代碼。如何提交數據以防止不起作用的情況?如果圖像數據在表單發佈中,那麼您可能對imagecreatefromstring是正確的。但是,如果您將其作爲文件上傳,您可能會嘗試將快捷方式上傳到無法使用的圖像。 – 2014-09-23 00:52:45
您似乎沒有設置$ width或$ height。如果它們爲零,它將只是放大到沒有完整的空白方塊。 – 2014-09-23 01:21:45
在頂部評論中提到,它們被設置...此代碼與其他jpg和png文件一起使用。只是沒有一些JPG文件。 – 2014-09-23 01:24:20