我的网站上的 move_uploaded_file 功能有问题。
整个想法是在表单中插入项目的标题、描述和屏幕截图。一切正常。它将标题和描述以及 id 和创建日期保存在 mysql 数据库中,并将文件移动到服务器上的文件夹中。
然而,问题是有些文件被传输到文件夹,而有些则没有。问题似乎出在文件中,但我似乎无法弄清楚问题所在。
这不是文件大小;我有 5/6MB 的文件放在文件夹中没有任何问题,我有大约 3MB 的文件。扩展名也不是问题,它们都是.jpg。
.jpg 文件是否还有其他要求才能上传?
我 99% 确定问题不在我的代码中,因为它可以毫无问题地上传一些文件,但无论如何这是我的代码。
HTML部分:
<form action="" method="post" enctype="multipart/form-data">
<h2>Title*</h2>
<input type="text" id="title" name="title">
<h2>Description*</h2>
<textarea id="descr" name="descr" cols="40" rows="4"></textarea>
<h2>Add file*</h2>
<input type="file" id="file" name="file">
<h2><input type="submit" id="submit" name="submit" value="Uploaden"></h2>
<p id="requirements">Fields marked with * are required.</p>
</form>
这是 PHP 部分:
if (isset($_POST['submit'])) {
$destination = "../uploadedfiles/" . basename($_FILES['file']['name']);
if (move_uploaded_file($_FILES['file']['tmp_name'], $destination)) {
echo '<p id="succes">File has been uploaded</p>';
} else {
echo '<p id="error">File has not been uploaded</p>';
}
$title = $_POST['title'];
$descr = $_POST['descr'];
$name = ($_FILES['file']['name']);
include "../connect/connect.php";
if ($title == "" || $descr == "") {
echo '<p id="error">Fill in the required fields</p>';
} else {
$query = "INSERT INTO file(title, descr, name, created) VALUES ('{$title}', '{$descr}', '{$name}', NOW())";
$upload = $connect->query($query);
if ($upload) {
echo '<p id="succes">Info is stored in database</p>';
} else {
echo '<p id=error>Failed to store info in database</p>';
}
}
}