【发布时间】:2016-05-20 18:20:45
【问题描述】:
当我尝试为用户个人资料制作横幅艺术上传系统时出现一个奇怪的问题。
我已经搜索了答案,但没有人解决它。
这不是权限问题,我的 chmod 在 uploads 文件夹和 upload.php 文件中是 755。
代码如下:
if ($_POST && !empty($_FILES)) {
$formOk = true;
//Assign Variables
$path = $_FILES['image']['tmp_name'];
$name = $_FILES['image']['name'];
$size = $_FILES['image']['size'];
$type = $_FILES['image']['type'];
if ($_FILES['image']['error'] || !is_uploaded_file($path)) {
$formOk = false;
echo "Error: Error in uploading file. Please try again.";
}
//check file extension
if ($formOk && !in_array($type, array('image/png', 'image/x-png', 'image/jpeg', 'image/pjpeg', 'image/gif'))) {
$formOk = false;
echo "Error: Unsupported file extension. Supported extensions are JPG / PNG.";
}
// check for file size.
if ($formOk && filesize($path) > 500000) {
$formOk = false;
echo "Error: File size must be less than 3 MB.";
}
if ($formOk) {
// read file contents
$content = file_get_contents($path);
//connect to mysql database
if ($conn = mysqli_connect('localhost', 'hidden', 'hidden', 'hidden')) {
$user_id = mysqli_real_escape_string($conn, $_POST['user_id']);
$username = mysqli_real_escape_string($conn, $_POST['username']);
$content = mysqli_real_escape_string($conn, $content);
$sql = "insert into banners (user_id, username, name, size, type, content) values ('{$user_id}','{$username}','{$name}', '{$size}', '{$type}', '{$content}')";
if (mysqli_query($conn, $sql)) {
$uploadOk = true;
$imageId = mysqli_insert_id($conn);
} else {
echo "Error: Could not save the data to mysql database. Please try again.";
}
mysqli_close($conn);
} else {
echo "Error: Could not connect to mysql database. Please try again.";
}
}
形式是:
<form method="post" enctype="multipart/form-data" action="<?=$_SERVER['PHP_SELF']?>" >
<div>
<h3>Image Upload:</h3>
</div>
<div>
<label>Image</label>
<img src="<?php print_r($path); ?>"/>
<?php print_r($_FILES); ?>
<input type="text" name="user_id" value="<?php echo $user->data["user_id"]; ?>" readonly/>
<br />
<input type="text" name="username" value="<?php echo $user->data["username"]; ?>" readonly/>
<input type="hidden" name="MAX_FILE_SIZE" value="500000">
<input type="file" name="image" />
<input name="submit" type="submit" value="Upload">
</div>
</form>
我在同一个文件 upload.php 中包含表单以及包含页眉和页脚。
所以基本上是把数据存到数据库里了,就是不会上传什么的,我也查了phpinfo等等,一切正常,打开了,phpinfo中的文件限制是64mb,所以我不明白为什么它不会上传?
任何帮助将不胜感激,谢谢
【问题讨论】:
-
不准确上传“哪里”?在文件夹中?我在任何地方都没有看到
move_uploaded_file()。 “上传文件夹” - 文件夹声明在哪里? -
我搜索了两次 move_uploaded_file()
-
“一个奇怪的问题” - 这里没有什么“奇怪”的,它是“缺少”的东西和你没有“做”的东西,也就是说,“移动”文件到文件夹php.net/manual/en/function.move-uploaded-file.php - 现在让我们都等待它......我应该把它作为一个答案。但我感觉到某个地方的太阳开始下山了。
-
抱歉大家回复晚了,我不得不出去了。我现在将尝试人们对移动文件 sn-ps 的建议。如果这就是它没有上传的原因,我会发布更新,谢谢大家
标签: php forms file-upload