2017-01-20 14 views
1

phpとpdoを使用して画像をアップロードしようとしています。 はここに私のフォームPOSTによってファイルのヌル値が返される

<form action="action.php" class="w3-container" method="post" enctype="multipart/form-data"> 
<p> <label>Image Upload</label> 
    <input type="file" name="st_im"></p> 
<input type="submit" value="Submit" class="w3-btn w3-blue"> 
<input type ="hidden" name="submitted" value="TRUE"> 

されており、ここだと、私はエラーを取得するフォームをsubmitingした後、私のPHPファイル

if (isset($_POST['submitted'])) { 
$errors = array(); 

$imgFile = $_FILES['st_im']['name']; 
$tmp_dir = $_FILES['st_im']['tmp_name']; 
$imgSize = $_FILES['st_im']['size']; 
if (empty($_POST['st_im'])) { 
$errors[] = 'you forgot the picture!'; 
}else{ 

$upload_dir = 'uploads/'; // upload directory 

$imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension 

// valid image extensions 
$valid_extensions = array('jpeg', 'jpg', 'png', 'gif'); // valid extensions 

// rename uploading image 
$st_im = rand(1000,1000000).".".$imgExt; 
} 
if(in_array($imgExt, $valid_extensions)){ 
// Check file size '5MB' 
if($imgSize < 5000000) { 
move_uploaded_file($tmp_dir,$upload_dir.$st_im); 
} 
else{ 
$errors[] = "Sorry, your file is too large."; 
} 
} 
else{ 
$errors[] = "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; 
} 
if (empty($errors)){ 
$stmt1=$conn->prepare("INSERT INTO magazia (st_img) VALUES (:st_im)"); 
$stmt1->bindParam(':st_im', $st_im, PDO::PARAM_STR); 
$st_im= $st_im; 
$stmt1->execute(); 

である:(st_im)がnullであることを意味し、「あなたは写真を忘れてしまいました」。私は約2時間ここに積み重なっています

私が紛失しているものは何ですか?事前

+0

は、あなたの代わりに$ _POST [ 'st_im']の$ _FILES [ 'st_im']をチェックすべきではありませんか? – Bostjan

+0

ありがとうございます@Bostjan – vaggelis

答えて

4

おかげで何の$_POST['st_im']はありません。その前の行で正しく使用したので、アップロードに関する情報は$_FILES['st_im']に保存されます。

だから、この代わりに確認する必要があります

if ($_FILES['st_im']['error'] != UPLOAD_ERR_OK) { 
    // Upload error 
    $errors[] = 'you forgot the picture!'; 
}else{ 
+1

* "....とフォルダに書き込むことができることを確認し、正しいパスです..." * ;-) –

+1

彼らは ''の形式を閉じても不明です。 –

+1

* 'これで代わりにこれをチェックする必要があります。' ---( '_(empty)($ _ POST ['st_im'])){'彼らはここで何をするのかわからないかもしれません、ちょっと;-) –

関連する問題