在PHP / MySQL中上载具有大小限制的图像

时间:2012-09-19 11:48:44

标签: php mysql image upload

我正在试图找出如何将图像上传到文件夹。我不想通过列出目录中的所有文件来列出它。

我想要做的是让用户插入一些值放入MySQL,然后在文件上传完成后取出文件名并将其插入MySQL字段“filename”。

事实上,我真的不知道如何在PHP中进行文件上传,更不用说如何在文件完全上传之前不将信息添加到数据库。有人可以帮帮我吗?

我还想知道如何将max filesize限制为一定的大小。我有一段时间没有关注技术了,所以我想知道现在几天平均数码相机拍摄照片的平均尺寸是多少?

3 个答案:

答案 0 :(得分:1)

让我们确保我们在页面中有一个表单。让我们称之为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”的目录

我希望这对你有用。

答案 1 :(得分:0)

您可以通过此网址http://php.net/manual/en/function.move-uploaded-file.php中的示例轻松找到PHP文件上传详细信息 要验证大小,你应该在php中使用getimagesize()函数。请查看此处的示例代码http://php.net/manual/en/function.getimagesize.php

答案 2 :(得分:0)

好吧,你似乎已经把它分解成了自己的步骤,所以你似乎明白该怎么做。

您需要的第一件事是用PHP上传文件。你可以在上面找到一个教程here。您将需要一个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!";
}

然后,一旦上传了文件,就需要将其存储在数据库中。您需要连接到您的数据库(tutorial here

然后你需要将信息添加到表中,文件名在var $_FILES['uploadedfile']['name']中,所以你需要一些代码

mysql_query("INSERT INTO files (Date, Filename)
VALUES ('$date', '$_FILES['uploadedfile']['name']')");

有关插入数据库的更多信息,请访问here