2013-11-22 9 views
0

У меня есть эта проблема относительно загрузки файла на php. Я всегда получаю эту ошибку. Msg.<input type = "file"> EMPTY

Внимание: file_get_contents(): Имя файла не может быть пустым в C: \ XAMPP \ HTDOCS \ omf2 \ emprecords \ add8.php на линии 25

это моя линия 25

$data = $con->real_escape_string(file_get_contents($_FILES['uploaded_file']['tmp_name'])); 

Но по-прежнему сохраняет информацию в моей базе данных.

То, что я пытаюсь сделать, это сохранить остальные записи в моей базе данных, даже если не выбрать файл для загрузки. И да записи сохраняются, а поле Attachment (mediumblob) - [BLOB - 0 B]

Вопрос: Как я могу исключить сообщение об ошибке/предупреждении? (Потому что все действительно прекрасно)

<meta http-equiv="refresh" content="2;URL='emphistory.php'"> 
    <?php 
    { 
    echo "<center><font color='#AAA' size='3'><br/>Record Added!</center>"; 
    } 
    ?> 
    <?php 
    $con=mysqli_connect("localhost","root","","dbomf"); 
    if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
    $result = mysqli_query($con,"SELECT * FROM valueholder"); 
    $row = mysqli_fetch_array($result); 

    $count = ''; 
    $IDNUM = $row['Val']; 
    $NS = addslashes($_POST ['NS']); 
    $ad = addslashes($_POST ['ad']); 
    $hr = addslashes($_POST ['HR']); 
    $name = $con->real_escape_string($_FILES['uploaded_file']['name']); 
    $data = $con->real_escape_string(file_get_contents($_FILES['uploaded_file']['tmp_name'])); 

    include ('../dbconn.php'); 

    $query = "INSERT INTO tblemphist1 VALUES 
    ('".$count."', '".$IDNUM."', '".$NS."', '".$ad."', '".$hr."', '".$data."', '".$name."')"; 

    $result = $db->query($query) or die($db->error); 
    $db->close(); 

здесь

<form method="post" action="add8.php" enctype="multipart/form-data"> 
<td><strong>Attachment</strong></td> 
    <td>:</td> 
    <td><input type="file" name="uploaded_file"></td> 
    </tr> 
</form> 
+0

, пожалуйста, внесите форму ввода –

+0

i обновил мой пост, я отправил тот, который вы ищете? – jstn

+0

нет, я имею в виду HTML-форму, прежде всего '' fields –

ответ

0
<input type = "file"> 

должен быть

<input name="uploaded_file" type = "file"> 

также образуют метод должен быть пост и использовать ENCTYPE = 'многочастному/форм-данных

<form action="" method="post" enctype="multipart/form-data"> 
<input name="uploaded_file" type = "file"> 
</form> 

также проверить

$name = ''; $data = ''; 
if ((is_uploaded_file($_FILES['uploaded_file']['tmp_name']) && !($_FILES['uploaded_file']['error'])) { 
    $name = $con->real_escape_string($_FILES['uploaded_file']['name']); 
    $data = $con->real_escape_string(@file_get_contents($_FILES['uploaded_file']['tmp_name'])); 
} 
    include ('../dbconn.php'); 

    $query = "INSERT INTO tblemphist1 VALUES ('".$count."', '".$IDNUM."', '".$NS."', '".$ad."', '".$hr."', '".$data."', '".$name."')"; 

    $result = $db->query($query) or die($db->error); 
+0

Я попробую этот – jstn

+0

сообщение об ошибке исчезло. но записи не были сохранены – jstn

+0

попробуйте с небольшим файлом изображения и проверьте 'print_r ($ data);' может быть file_get_contents не работает –

0

Используйте, если заявление. Например:

if (!empty($_FILES)) { 
    $data = $con->real_escape_string(
     file_get_contents($_FILES['uploaded_file'] ['tmp_name']) 
    ); 
} 
+0

Я пробовал это, все же, предупреждение есть.: P – jstn

0

Просто проверить, если переменная не является пустым

$data = ''; 
if (!empty($_FILES['uploaded_file']['tmp_name'])) { 
    $data = $con->real_escape_string(file_get_contents($_FILES['uploaded_file']['tmp_name'])); 
} 
+0

это позволит мне сохранить все в моей базе данных, даже если я не выбираю какой-либо файл? – jstn

+0

Я попробовал этот. все же, он показывает, что он не может быть пустым – jstn

+0

Что показывает вам, что он не может быть пустым? Является ли это ошибкой базы данных или той же ошибкой PHP? – matewka

0

Прежде чем обращаться к любому свойству $_FILES['uploaded_file'] вы должны проверить значение $_FILES['uploaded_file']['error']. И да, это хорошая идея проверить, существует ли такой ключ вообще - как и все, что приходит от пользователя, нет гарантии, что он существует в запросе.

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