[英]while uploading a image using php and mysql: Warning: file_get_contents(): Filename cannot be empty
[英]file_get_contents(): Filename cannot be empty (uploading files to be optional)
我是php新手。 我在php中制作了一個簡單的上傳表單。 這是我的代碼。
<html><head></head>
<body>
<form method="post" action="" enctype="multipart/form-data">
Upload File:
<input type="file" name="upload" /><br>
<input type="submit" name="submit" value="Submit"/>
</form>
</body>
</html>
<?php
include("config.php");
if(isset($_POST['submit']) )
{
$filename = $con->real_escape_string($_FILES['upload']['name']);
$filedata= $con->real_escape_string(file_get_contents($_FILES['upload']['tmp_name']));
$filetype = $con->real_escape_string($_FILES['upload']['type']);
$filesize = intval($_FILES['upload']['size']);
if ($_FILES['upload']['name'] == 0 ){
echo "<br><br> New record created successfully";
}
else {
$query = "INSERT INTO contracts(`filename`,`filedata`, `filetype`,`filesize`) VALUES ('$filename','$filedata','$filetype','$filesize')" ;
if ($con->query($query) === TRUE) {
echo "<br><br> New record created successfully";
} else {
echo "Error:<br>" . $con->error;
}
}
$con->close();
}
?>
工作正常。 但是,如果我按沒有附加文件的提交,則顯示錯誤,警告:file_get_contents():在20行的C:\\ xampp \\ htdocs \\ contractdb \\ filetest.php中文件名不能為空。
我希望上傳文件是可選的,因為不是每個用戶都有要附加的文件。 我還希望用戶在上傳后下載文件而不刪除file_get_contents($ _ FILES ['upload'] ['tmp_name'])。
我該怎么做呢?
您的檢查應在調用file_get_content()
之前進行,這樣它不會引發錯誤,並且僅在文件輸入不為空時才調用該函數:
if(isset($_POST['submit']) ) {
if ($_FILES['upload']['size'] != 0 ) {
$filename = $con->real_escape_string($_FILES['upload']['name']);
$filedata= $con->real_escape_string(file_get_contents($_FILES['upload']
['tmp_name']));
$filetype = $con->real_escape_string($_FILES['upload']['type']);
$filesize = intval($_FILES['upload']['size']);
$query = "INSERT INTO contracts(`filename`,`filedata`, `filetype`,`filesize`) VALUES ('$filename','$filedata','$filetype','$filesize')" ;
if ($con->query($query) == TRUE) {
echo "<br><br> New record created successfully";
} else {
echo "Error:<br>" . $con->error;
}
}
else {
echo 'error: empty file';
}
}
嘗試這個:
if (isset($_POST['submit']) & ($_FILES['upload']['name']!=''))
{
// Statement
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.