所以,我最近查了如何使用Blob将文件上传到数据库。这是我找到http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/uploading-files-to-mysql-database.aspx
的教程我按照本教程编写了这段代码 -
HTML表格 -
<form action='memberPage.php' method='post' enctype='multipart/form-data'>
<input type='text' name='programName' placeholder='Program Name'></input>
<input type='text' name='programPrice' placeholder='Price'></input>
<div id='uploadFiles'>
<input name='userfile1' type='file' onchange='addAnother()'>
</div>
<input type='submit' value='Create program' style='cursor:pointer;'></input>
</form>
PHP UPLOAD($ programName在代码外部指定,看起来像$ programName = $ _ POST [“programName”];)
for($i = 1; $i < 999;$i++){
if(isset($_POST["userfile" . $i]) && $_FILES["userfile" . $i]['size'] > 0){
$Filename = $_FILES["userfile" . $i]['name'];
$finfo = new finfo();
$Filetype = $finfo->file($_FILES["userfile" . $i]['tmp_name'], FILEINFO_MIME);
$Filesize = $_FILES["userfile" . $i]['size'];
$Filetmpname = $_FILES["userfile" . $i]['tmp_name'];
$Fileerror = $_FILES["userfile" . $i]['error'];
$fp = fopen($Filetmpname, 'r');
$content = fread($fp, filesize($Filetmpname));
$content = addslashes($content);
fclose($fp);
if(!get_magic_quotes_gpc())
{
$Filename = addslashes($Filename);
}
mysqli_query($conn, "INSERT INTO upload(name,type,size,content,program) VALUES('
'" . $Filename. "','" . $Filetype. "','" . $Filesize . "','" . $content . "','" . $programName . "')");
}else{
$i=999;
header("location:memberPage.php");
}
}
但是当我提交论坛时,文件返回时没有任何内容,没有名称,大小为零。
我还在这里检查了其他问题并没有找到答案,所以我的猜测是它在我的代码中。
我还要指定onchange ='addAnother()'添加另一个输入,但是它上面有下一个结束号(例如 - userfile1,然后它会添加userfile2)
答案 0 :(得分:2)
您正在使用输入名称“programName”并尝试使用$ _POST获取“Programname”。
PHP区分大小写您应该在PHP中使用相同的大小写“$ _POST ['programName']”
答案 1 :(得分:1)
我们需要检查文件元素而不是post元素。
尝试更改此
if(isset($_POST["userfile" . $i]) && $_FILES["userfile" . $i]['size'] > 0){
到这个
if(isset($_FILES["userfile" . $i]) && $_FILES["userfile" . $i]['size'] > 0){
答案 2 :(得分:0)
最好将输入名称创建为数组。
<input name='userfile[]' type='file' onchange='addAnother()'>
并在php中迭代它,如:
if (isset($_FILES["userfile"]) && is_array($_FILES["userfile"])) {
for ($i=0;$i<count($_FILES["userfile"]);$i++) {
echo $_FILES["userfile"]["name"][$i];
}
}