我正在尝试为我的网络应用程序创建一个图片上传器。我已经尝试在线搜索如何创建一个解决方案,但没有太多运气找到任何真正的帮助。我也不确定我应该用什么词来搜索正确的结果。我确实在W3Schools网站上找到了一些东西,(http://www.w3schools.com/php/php_file_upload.asp),但我还是无法将它上传到我的服务器。由于我按照网站上的说明进行设置,因此不确定问题是什么。我也发现了这个(JavaScript: Upload file),但它并不完全是我想要的。我仍然需要PHP脚本,因为图像不是我将要发送到服务器的唯一东西。我还将发送其他信息存储到服务器上的数据库中,例如图像名称和与图像相关的其他信息。
我正在使用的PHP脚本,我从W3S网站上下载,在下面。我被困在的地方是,一旦我点击提交按钮,我的页面崩溃,或者我应该说我得到了服务器错误,但没有关于导致它的原因的信息。任何帮助将不胜感激
<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$extension = end(explode(".", $_FILES["file"]["name"]));
if (($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjepg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts)) {
if ($_FILES["file"]["error"] > 0) {
echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
else {
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " KB<br>";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
if (file_exists("public_hmtl/uploads/" . $_FILES["file"]["name"])) {
echo $_FILES["file"]["name"] . " already exists. ";
}
else {
move_uploaded_file($_FILES["file"]["tmp_name"], "public_hmtl/uploads/" . $_FILES["file"]["name"]);
echo "Stored in: " . "public_hmtl/uploads/" . $_FILES["file"]["name"];
}
}
}
else {
echo "Invalid file";
}
?>
这里也是表格的html。
<!DOCTYPE html> <html> <head> <title>Location details</title> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> </head> <body> <div> <form enctype="multipart/form-data" method="post" action="scripts/snap.php"> <!--<p> <input id="plat" class="plat" name="plat" type="hidden" value="" /> <input id="plon" class="plon" name="plon" type="hidden" value="" /> </p>--> <div class="row"> <label for="file">Select an image to Upload</label><br /> <input type="file" name="file" id="file" /> </div> <div id="filename"></div> <div id="fileSize"></div> <div id="fileType"></div> <div class="row"> <input type="submit" name="submit" value="Submit" /> <!--<input type="button" onclick="uploadFile()" value="Upload" />--> </div> <div id="progressNumber"></div> </form> </div>
答案 0 :(得分:2)
在if语句中,有不匹配的打开和关闭标记,请更正
if ( ( ($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjepg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png")
)
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts) )
答案 1 :(得分:0)
如果您可以扩展此服务器错误,那将是一件好事。我没有足够的评论来评论,所以不得不在这里要求澄清。
另外,请检查您是否正确选择了文件扩展名。也许使用pathinfo()。示例如下。
$ extension = pathinfo($ _ FILES ['file'] ['name']);
$ ext = $ extension ['extension'];