我试图弄清楚如何将图像上传到文件夹。我不想通过列出目录中的所有文件来列出它。
我想要做的是让用户插入某些值以放入 MySQL,然后在文件完成上传后获取文件名并将其插入 MySQL 字段“文件名”。
问题是,我真的不知道如何在 PHP 中进行文件上传,更不用说如何让它在文件完全上传之前不将信息添加到数据库中。有人可以帮我吗?
我还想知道如何将最大文件大小限制为一定大小。我已经有一段时间没有关注技术了,所以我想知道现在用普通数码相机拍摄的照片的平均尺寸是多少?
让我们确保我们在页面中有一个表单。让我们称之为 form.php:
<form enctype="multipart/form-data" action="uploader.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>
然后我们在与 form.php 相同的文件夹中创建一个名为 uploader.php 的文件。
// change the username and password to your database information
mysql_connect("localhost", "username", "password");
$target_path = "uploads/";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['uploadedfile']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
// Here we will insert into the database
mysql_query("INSERT INTO fileuploads (filename) VALUES ('".$target_path."')");
现在确保您有一个名为 fileuploads 的表,其中包含“filename”字段。
不要忘记在与 form.php 和 uploader.php 相同的文件夹中创建一个名为“uploads”的目录
我希望这对你有用。
您可以通过此 URL http://php.net/manual/en/function.move-uploaded-file.php的示例轻松找到 PHP 文件上传详细信息, 并且要验证大小,您应该使用 getimagesize() 函数php。在此处查看示例代码http://php.net/manual/en/function.getimagesize.php
好吧,您似乎已经将其分解为自己的步骤,因此您似乎明白该怎么做。
您需要做的第一件事是用 PHP 上传文件。您可以在此处找到有关它的教程。您将需要一个 HTML 格式的表单和一个处理它的 PHP 文件。这也是您指定文件大小的地方。
示例 HTML
<form enctype="multipart/form-data" action="uploader.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>
示例 PHP
$target_path = "uploads/";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['uploadedfile']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
然后,一旦您上传了文件,您就需要将其存储在您的数据库中。你需要连接到你的数据库(教程在这里)
然后您需要将信息添加到表中,文件名在 var 中,$_FILES['uploadedfile']['name']
因此您需要一些代码
mysql_query("INSERT INTO files (Date, Filename)
VALUES ('$date', '$_FILES['uploadedfile']['name']')");
有关插入数据库的更多信息,请参见此处