Проблемы с загрузкой скрипта php - PullRequest
0 голосов
/ 13 мая 2011

Используя Expression Web, хотите загружать изображения на мои веб-страницы, не получая сообщений об ошибках, даже если они написаны в сценарии. Установите папку для загрузки, чтобы поделиться со всеми. php.ini установлено на file_uploads=on;upload_max_size=128M. В Firefox время ожидания скрипта истекло, а в IE «Internet Explorer не может отобразить страницу».

Я искал ответы в течение нескольких недель. Любой другой скрипт, который я пробовал, работает, хотя я новичок в php. Эта загрузка заставила меня почесать голову. Самая последняя попытка загрузки сценария:

if (isset($_POST['submitted'])) {

    // Check for an uploaded file:
    if (isset($_FILES['upload'])) {

        // Validate the type. Should be JPEG or PNG.
        $allowed = array ('image/pjpeg', 'image/jpeg', 'image/JPG', 'image/X-PNG', 'image/PNG', 'image/png', 'image/x-png');
        if (in_array($_FILES['upload']['type'], $allowed)) {

            $target_path = "C:/uploads/";
            $name=$_FILES['upload']['name'];
            $error=$_FILES['upload']['error'];
            $tmp_name=$_FILES['upload']['tmp_name'];

            if($error==UPLOAD_ERR_OK){

               if($_FILES['upload']['size']>0){

               move_uploaded_file($tmp_name, $target_path.$name); 

            print ("The file ".$name." has been uploaded.\n");

             } else{

             print ("There was an error uploading the file, please try again!\n");

             }

             }elseif ($error==UPLOAD_ERR_NO_FILE) {

             print("No files specified.\n");

             }else{

             print("Upload failed.\n");

             }
             print("\n");


        }//End of !in_array IF.

    } // End of isset($_FILES['upload']) IF.


} // End of the submitted conditional.
?>

<div>
  <form action="photogallery.php" enctype="multipart/form-data" method="post">
  <input type="hidden" name="MAX_FILE_SIZE"  value="524288" />
  <p><b>File:</b><input name="upload" type="file" /></p>
  <input name="submit" type="submit" value="Submit" />
  <input name="submitted" type="hidden" value="TRUE" />
  </form>
</div>

Я пытаюсь загрузить изображения в папку загрузки в моем каталоге, а затем отобразить на моей веб-странице. Я поместил изображения в папку вручную, и они будут отображаться на моей веб-странице по ссылке, но эти сценарии работать не будут. Мой сайт не работает, он находится в разработке, и я использую XAMPP и Microsoft Development Server.

1 Ответ

0 голосов
/ 13 мая 2011

Фактическую ошибку сказать сложно. Но есть несколько моментов, которые следует упомянуть в вашем скрипте (типичные проблемы скрипта загрузки):

  • Константа ['name'] может быть пустой, что объясняет ошибку загрузки.
  • Но он также может быть подделан и содержать такие вещи, как "../Windows/System.ini", что не очень хорошо для вашего сценария, так как вы используете его без фильтра в качестве выходного имени файла.
  • MIME ['type'] также ненадежен. Но это, вероятно, не проблема здесь. По крайней мере, используйте strtolower() вместо списка нескольких альтернатив MIME.
  • Наконец, включите error_reporting(E_ALL);, который сообщит вам, являются ли проблемы с разрешением move_upload_file ().

Я бы предложил начать с простого

move_uploaded_file($_FILES["upload"]["tmp_name"], "C:/uploads/test.1");

А затем постепенно расширяйте его другими условиями, чтобы найти причину проблемы с загрузкой.

...