Кажется, что мой скрипт возвращает 500 ошибок при прикреплении изображений, однако он возвращает файлы, которые я хотел в моем каталоге? Я пробовал phpinfo () и помещал заказ .user.ini в мой каталог, и я все еще заканчиваю ошибку. Я использую Godaddy & Plesk, если это помогает?
<?php set_time_limit(0); ignore_user_abort(1); ini_set('memory_limit','512M'); require('fpdf/fpdf.php'); $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Helvetica','B',10); $pdf->Image('some-url',10,10,50,50,'gif'); $pdf->SetXY(70,28); $pdf->Cell(0,0,"Title",0,0,'C'); $pdf->SetXY(70,40); $pdf->Cell(0,0,"Job Completion Certificate",0,0,'C'); $pdf->SetY(60); $pdf->Write(14,$Data); $pdf->SetY(225); if(! empty($_POST["signature"])){ $pdf->Image($_POST["signature"],null,null,0,0,'png'); }; $pdf->AddPage('P','A4'); $allowedExts = array("gif", "jpeg", "jpg", "JPG", "JPEG", "PNG","png"); $pictures = array("file1", "file2", "file3"); $counter = 10; foreach ($pictures as $value) { if ( ! empty($_FILES[$value]["tmp_name"]) &&($_FILES[$value]["size"] < 4000000) && in_array(end(explode(".", $_FILES[$value]["name"])), $allowedExts)) { move_uploaded_file($_FILES[$value]["tmp_name"],$_FILES[$value]["name"]); $pdf->Image($_FILES[$value]["name"],25,$counter,80,80); //unlink($_FILES["file"]["name"]); $counter += 90; } else { echo $value." is either Invalid or Not Attached<br>"; }; }; $pdf->Output($_POST["Customer"]."_".$_POST["Location"].'.pdf', 'F'); print "Data Written"; ?>
Если я прокомментирую этот раздел кода:
foreach ($pictures as $value) { if ( ! empty($_FILES[$value]["tmp_name"]) &&($_FILES[$value]["size"] < 4000000) && in_array(end(explode(".", $_FILES[$value]["name"])), $allowedExts)) { move_uploaded_file($_FILES[$value]["tmp_name"],$_FILES[$value]["name"]); $pdf->Image($_FILES[$value]["name"],25,$counter,80,80); //unlink($_FILES["file"]["name"]); $counter += 90; } else { echo $value." is either Invalid or Not Attached<br>"; }; };
Он работает нормально.
Редактировать:
После дальнейшей проверки и изменения моего файла web.config (см. Http://support.godaddy.com/help/article/3430/disabling-windows-custom-error-messaging?locale=en&ci=46061 ) Я получаю эту ошибку:
PHP Strict Standards: Only variables should be passed by reference in G:\PleskVhosts\mysite\httpdocs\action.php on line 48
В итоге мне пришлось изменить код ниже:
... foreach ($pictures as $value) { $temp = explode(".", $_FILES[$value]["name"]); $extension = end($temp); if ( ! empty($_FILES[$value]["tmp_name"]) &&($_FILES[$value]["size"] < 4000000) && in_array($extension, $allowedExts)) {...
Если кто-то еще пытается получить ошибки, появляющиеся на godaddy & plesk, перейдите по ссылке выше и поместите файл web.config в корневую папку и папку, на которой находится ваша страница. Как только вы увидите, где проблема, это намного проще решать!