2016-10-27 3 views
0

アップロードボタンがある単純なページを作成しようとしています。これは「ファイルを選択」ではなく「アップロード」に名前を変更したものです。 "選択"ファイルと "送信"ボタンはありません。isset()ファイルでfalseを返します

<!DOCTYPE html> 
<html> 
<head> 
<style> 
input[type="file"] { 
    display: none; 
} 
.custom-file-upload { 
    background-color: #0fffff; 
} 
</style> 
</head> 
<body> 
<form action="" name="file" method="post" enctype="multipart/form-data"> 
<label for="file-upload" class="custom-file-upload"> 
    <i class="fa fa-cloud-upload"></i> Upload 
</label> 
<input id="file-upload" type="file" /> 
</div> 
</form> 

<?php 
if(isset($_FILES['file'])) { 
    echo"file exists"; 
} 
else { 
    echo"file doesn't exist"; 
} 

?> 
</body> 
</html> 

ライン:

if(isset($_FILES['file'])) 

は常にfalseを返し

、私も試してみました:

!empty() を使用して、私は一つだけのボタンを持つようにしたいと、type="file"のフォームを使用する必要があり、アップロードと提出を同時に行う「アップロード」ボタン。

ここでどこが間違っているのか分かりませんが、どんな助けでも大歓迎です!

+2

uが何もしないフォームに名前= "ファイル" を追加するname属性 – devpro

+0

を使用することを忘れてしまったので。 – http55

+0

isset if条件の前にprint_r($ _ FILES)を挿入すると、$ _FILESの全内容がダンプされ、その内容を見るのに役立ちます。 – SPlatten

答えて

4

ユーザーがファイルを選択したときにフォームを送信するには、Javascriptを使用する必要があります。

$_FILESのキーと一致するように、ファイル入力に名前を付ける必要があります。

document.getElementById("file-upload").addEventListener("change", function() { 
 
    this.form.submit(); 
 
});
<form action="" method="post" enctype="multipart/form-data"> 
 
    <label for="file-upload" class="custom-file-upload"> 
 
    <i class="fa fa-cloud-upload"></i> Upload 
 
    </label> 
 
    <input id="file-upload" type="file" name="file" /> 
 
    </div> 
 
</form>

+0

これはいいです.... – devpro

+0

JavaScriptコードはそれ自身で行く必要がありますブロック? – http55

+0

@ http55はいu r右 – devpro

関連する問題