2016-12-30 14 views
-1

送信ボタンを使用せずに画像アップロードを行っています。ユーザーが画像を選択すると、すぐにアップロードされます。しかし、私は問題を抱えています.Ajaxは "succes"しか印刷しませんが、イメージはフォルダにありません。 PHPはajaxの仕事なし。送信ボタンを使用せずに画像をアップロードする方法は?

これは私のhtmlです:

<form action="../PHP/fotogaleria.php" method="post" class="form_fotogaleria" enctype="multipart/form-data"> 
    <div class="obal_fotogalerie"> 
     <div class="stvorcek"> 
      <label class="file_nahod"> 
       <input type="file" name="odoslat_fotogaleria" class="odid"> 
       <img class="priecinok" src="../Obrazky/folder.png"> 
       <p> Nahrať</p> 
      </label> 
     </div> <!-- koniec "stvorcek" --> 
    </div> <!-- koniec "obal_fotogalerie" --> 
</form> 

PHP:

$('.odid').change(function(e) { 
    e.preventDefault(); 
$.ajax({ 
url: '../PHP/fotogaleria.php', 
type: "POST", 
data: new FormData(this), 
contentType: false, 
cache: false, 
processData: false, 
success: function(data){ 
    console.log(data); 
} 

ことができる人時間:

$name = $_FILES['odoslat_fotogaleria']['name']; 
$tmp_name = $_FILES['odoslat_fotogaleria']['tmp_name']; 
$path = '../Obrazky-zvieratok/'; 
$cielovy_file = $path . basename($name); 


move_uploaded_file($tmp_name,$path.$name); 
echo "success"; 

そして、ここでは、AJAXですエル・P?

+0

ajaxをトリガーするサブミットでこの機能は正常に機能しますか? – NewToJS

+0

あなたのコンソールを見てください –

答えて

1

入力要素をFormDataコンストラクタに渡しています。代わりにフォーム要素を渡す必要があります。

data: new FormData($(this).closest('form').get(0)), 
関連する問題