1
我在我的网站上设置了一个文件上传服务。以下是我走到这一步,继续收到我的PHP文件上传系统的两个错误
upload.php的
<form action="uploader.php" method="post" enctype="multipart/form-data">
<input type="file" name="myFile">
<br>
<input type="submit" value="Upload">
</form>
uploader.php
<?php
define("UPLOAD_DIR", "/uploads");
if (!empty($_FILES["myFile"])) {
$myFile = $_FILES["myFile"];
if ($myFile["error"] !== UPLOAD_ERR_OK) {
echo "<p>An error occurred.</p>";
exit;
}
// ensure a safe filename
$name = preg_replace("/[^A-Z0-9._-]/i", "_", $myFile["name"]);
// verify the file is a GIF, JPEG, or PNG
$fileType = exif_imagetype($_FILES["myFile"]["tmp_name"]);
$allowed = array(IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG);
if (!in_array($fileType, $allowed)) {
// file type is not permitted
echo "<p>Unable to save file.</p>";
exit;
}
// don't overwrite an existing file
$i = 0;
$parts = pathinfo($name);
while (file_exists(UPLOAD_DIR . $name)) {
$i++;
$name = $parts["filename"] . "-" . $i . "." . $parts["extension"];
}
// preserve file from temporary directory
$success = move_uploaded_file($myFile["tmp_name"],
UPLOAD_DIR . $name);
if (!$success) {
echo "<p>Unable to save file.</p>";
exit;
}
// set proper permissions on the new file
chmod(UPLOAD_DIR . $name, 0644);
}
有一个在我的目录名为上传一个文件夹,我想我的文件上传到那里。
但是,当使用XAMMP运行它时,我尝试上传一个名为example.png的图像,它出现以下错误。
Warning: move_uploaded_file(/uploadsexample.png): failed to open stream: Permission denied in C:\xampp\htdocs\assembly\uploader.php on line 37
Warning: move_uploaded_file(): Unable to move 'C:\xampp\tmp\phpBAE5.tmp' to '/uploadsexample.png' in C:\xampp\htdocs\assembly\uploader.php on line 37
Unable to save file.
如果你能帮我解决我的问题,我将不胜感激!谢谢。
这是正确的,“权限被拒绝”是因为它由于缺少“/”而导致混淆 – Parker 2014-10-22 05:33:02
Warning:move_uploaded_file(/uploads/example.png):未能打开流:C:中没有这样的文件或目录: \ xampp \ htdocs \ assembly \ uploader.php on line 37 Warning:move_uploaded_file():无法在C:\ xampp中将'C:\ xampp \ tmp \ php340B.tmp'移动到'/uploads/example.png' \ htdocs \ assembly \ uploader.php在线37 无法保存文件。是我现在得到的。该文件夹可以写入权限。 – user3317455 2014-10-22 05:33:24
@ user3317455文件夹是否可写?确保它是'0755'。 – 2014-10-22 05:34:18