我是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\契约db\filetest.php中的文件名不能为空。
我希望上传文件是可选的,因为不是每个用户都有附加的文件。我还希望用户在上传后下载文件而不删除file_get_contents($_FILES['上传']['tmp_name'])。
我该怎么做?
试试这个:
if (isset($_POST['submit']) & ($_FILES['upload']['name']!=''))
{
// Statement
}
您应该在调用file\u get\u 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';
}
}
我试图为我的评估做一个要求,即“在某种形式上,如果用户上传1个或多个图像,这些图像和其他输入信息需要存储在数据库中。如果用户选择不上传任何图像,其他输入信息需要存储在数据库中。” 这是我用我的方式做时得到的结果但它并不完美 警告:文件\u get\u contents():第178行C:\xampp\htdocs\WEB Assignment\phpserver.php中的文件名不能为空 这就是我
我每次点击提交按钮都会出现这个错误。其他所有内容都提交到数据库,只有图像没有提交。警告:file\u get\u contents():文件名不能为空。你知道吗?这是我的密码。
问题内容: 我意识到我可以非常轻松地使用CURL做到这一点,但是我想知道是否可以与http流上下文一起使用,以将文件上传到远程Web服务器,如果可以,怎么办? 问题答案: 首先,Content-Type 的第一个规则是 定义一个边界 , 该边界 将用作每个部分之间的定界符(因为顾名思义,它可以包含多个部分)。边界可以是 内容正文中不包含的任何字符串 。我通常会使用时间戳记: 定义边界后,必须将其与
我上传文件有问题。我正在使用codeigniter框架和dropzone。js上传文件。 我认为: 控制器: 问题是上传的文件返回为空: 数组(1){["upload_data"]= 我试图转储fileToUpload输入的POST值,也是空的。是不是我忽略了什么?
我想将文件上载到服务器,但数组似乎为空。 我下面的代码有问题吗? PHP代码 Print_r($_FILES['fotos'])向我展示了这个:数组([name]=
问题内容: 经过一整天的研究和尝试,我终于放弃了 纯AJAX的 上传文件(ps:本文如何与JQuery异步上传文件?埋了我的最后希望) 我的问题可能没什么意义,但是我仍然想知道为什么ajax(或XMLHttpRequest)不能处理这个问题?为什么文件不能像真正的httprequest那样传输? 问题答案: 出于安全原因,JavaScript无法读取本地文件,因此我们无法使用AJAX发送数据。 但