2014-12-29 3 views
2

Я использую процедуру PHP $ _FILE для загрузки изображения в определенную папку, но ничего не происходит, я также пытался использовать некоторые фрагменты, но ничего не работает, Я использую PHP и JavaScript, чтобы сделать это,

Вот PHP код:

<?php 

if (isset($_POST['postImage'])) 
    { 
    $validextensions = array(
     "jpeg", 
     "jpg", 
     "png", 
     "gif" 
    ); 
    $temporary = explode(".", $_FILES["postImage"]["name"]); 
    $file_extension = end($temporary); 
    if ((($_FILES["postImage"]["type"] == "../news/img/.png") || ($_FILES["postImage"]["type"] == "../news/img/.jpg") || ($_FILES["postImage"]["type"] == "../news/img/.jpeg") || ($_FILES["postImage"]["type"] == "../news/img/.gif")) && in_array($file_extension, $validextensions)) 
     { 
     if ($_FILES["postImage"]["error"] > 0) 
      { 
      echo "Return Code: " . $_FILES["postImage"]["error"] . "<br/><br/>"; 
      } 
      else 
      { 
      echo "<span>Your File Uploaded Succesfully...!!</span><br/>"; 
      echo "<br/><b>File Name:</b> " . $_FILES["postImage"]["name"] . "<br />"; 
      echo "<b>Type:</b> " . $_FILES["postImage"]["type"] . "<br />"; 
      echo "<b>Temp file:</b> " . $_FILES["postImage"]["tmp_name"] . "<br />"; 
      if (file_exists("../news/img/" . $_FILES["postImage"]["name"])) 
       { 
       echo $_FILES["postImage"]["name"] . " <b>already exists.</b> "; 
       } 
       else 
       { 
       move_uploaded_file($_FILES["postImage"]["tmp_name"], "../news/img/" . $_FILES["postImage"]["name"]); 
       echo "<b>Stored in:</b> " . "../news/img/" . $_FILES["postImage"]["name"]; 
       } 
      } 
     } 
     else 
     { 
     echo "<span>***Invalid file Size or Type***<span>"; 
     } 
    } 

?> 

код JavaScript:

<script> 
     $(document).ready(function() { 
     // Function for Preview Image. 
     $(function() { 
     $(":file").change(function() { 
     if (this.files && this.files[0]) { 
     var reader = new FileReader(); 
     reader.onload = imageIsLoaded; 
     reader.readAsDataURL(this.files[0]); 
     } 
     }); 
     }); 
     function imageIsLoaded(e) { 
     $('#message').css("display", "none"); 
     $('#preview').css("display", "block"); 
     $('#previewimg').attr('src', e.target.result); 
     }; 
     // Function for Deleting Preview Image. 
     $("#deleteimg").click(function() { 
     $('#preview').css("display", "none"); 
     $('#file').val(""); 
     }); 
     // Function for Displaying Details of Uploaded Image. 
     $("#submit").click(function() { 
     $('#preview').css("display", "none"); 
     $('#message').css("display", "block"); 
     }); 
     }); 
    </script> 

HTML-код:

<form action="" method="post"> 
    <div id="message"></div> 

    <input id="postImage" type="file" name="postImage" placeholder="Upload Image" value=""> 

    <input type="submit"> 

    <br> 
    <br> 

    <div id="preview"> 
     <img id="previewimg" src=""> 
    </div> 
</form> 
+3

'если (Исеть ($ _ POST [ 'postImage']))', который должен быть '$ _FILES'; ваше условное основано на этом. Кроме того, вам может понадобиться действующий enctype в вашей форме. –

+0

Вы имеете в виду 'enctype =" multipart/form-data "' right! – Arqetech

+0

Точно так же. –

ответ

2

Изменение одна строка:

<form action="" method="post" enctype="multipart/form-data"> 

Вы пропустили

enctype="multipart/form-data" 

для загрузки файла.

+0

Проверить информацию об изображении, используя print_r ($ _ FILES). поступают ли данные или нет. – Yash

+0

Я уже пробовал, но он не работает – Arqetech

+0

Конечно, я попробую. :) – Arqetech

0

Изменить этот

if (isset($_POST['postImage']))... 
if ((($_FILES["postImage"]["type"] == "../news/img/.png") || ($_FILES["postImage"]["type"] == "../news/img/.jpg") || ($_FILES["postImage"]["type"] == "../news/img/.jpeg") || ($_FILES["postImage"]["type"] == "../news/img/.gif")) && in_array($file_extension, $validextensions)) 

Для

if (isset($_FILE['postImage'])) 
if ((($_FILES["postImage"]["type"] == "png") || ($_FILES["postImage"]["type"] == "jpg") || ($_FILES["postImage"]["type"] == "jpeg") || ($_FILES["postImage"]["type"] == ".gif")) && in_array($file_extension, $validextensions)) 
+0

У вас есть фатальная синтаксическая ошибка. –

+0

По-прежнему не работает – Arqetech

+0

Ошибка в 'if (isset ($ _ FILE ['postImage']))' –

Смежные вопросы