我正在创建一个带上传功能的在线图库。我使用PHP上传图像并将其存储在mysql数据库中。它似乎不允许我上传文件大小超过64KB。
以下是我的HTML代码
<form action="upload.php" method="POST" enctype="multipart/form-data">
<label>File: </label>
<input type="file" name="image" />
<input type="submit" value="upload" name="submit"/>
</form>
upload.php代码
<?php
//file properties
if(isset($_POST['submit']))
{
if(getimagesize($_FILES['image']['tmp_name']) == FALSE)
{
echo "Please select an image";
}
else
{
$image = addslashes($_FILES['image']['tmp_name']);
$name = addslashes($_FILES['image']['name']);
$image = file_get_contents($image);
$image = base64_encode($image);
saveimage($name,$image);
}
}
displayimage();
function saveimage($name,$image){
$con=mysql_connect("localhost","root","admin");
mysql_select_db("brandon",$con);
$qry = "insert into store(name,image) values('$name','$image')";
$result = mysql_query($qry,$con);
if($result){
echo "<br/> Image uploaded";
}else{
echo "<br/> Image not uploaded";
}
}
//display image
function displayimage()
{
$con=mysql_connect("localhost","root","admin");
mysql_select_db("brandon",$con);
$qry="select * from store";
$result=mysql_query($qry,$con);
while($row = mysql_fetch_array($result))
{
echo '<img height="300" width="300" src="data:image;base64,'.$row[2].' "> ';
}
mysql_close($con);
}
在我的数据库上我设置了一个包含3列(id,name,image)的表。 ID是自动增量和主要。名称为TEXT,图像为LONGBLOB。
我在PHP版本5.6.3中使用PHPstorm。 Xampp版本是3.2.1。其他人建议增加upload_max_limit
php.ini
,但它不适合我。我已将其更改为以下
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize=128M
; Maximum size of POST data that PHP will accept.
post_max_size=128M
将max_memory设置为128M且60s超时。
如果我上传一个小图片文件但是如果我上传一个大图片文件,它会顺利进行
请提前帮助和谢谢
编辑1:调试器,apache和mysql错误日志显示没有错误。我重新启动XAMPP,PHPStorm和我的Chrome浏览器,以便再次进入工作状态(这允许我上传小图像文件并执行php文件,而不是无休止的加载和502坏网关)
编辑2:解决了!我尝试从localhost启动它而不是PHPStorm的自动启动。它运作得很好。
答案 0 :(得分:0)
更改php.ini
文件后,您重启了Xampp吗?直到发生这种情况才会生效。
另外,请检查有关错误网关错误的PHP和Apache错误日志,这可能会为您提供有关正在发生的更多详细信息。