我正在为我的网站创建个人资料图片上传功能,但出于某种原因,INSERT INTO setList...
不想运行。
我尝试了多个论坛并测试了所有可能的不同方法,但没有运气。
这是我的PHP& HTML:
move_uploaded_file()
首先,我检查所选文件是否具有有效的扩展名,如果是,它将使用microtime散列文件临时名称(为了安全起见)。然后我将扩展连接到末尾,并在它之间完全停止,即输出将为<?php
if(isset($_FILES['avatar'])){
if(empty($_FILES['avatar']['name'])){
$errors[] = 'Please select an avatar.';
} else {
$ext = array('jpg', 'jpeg', 'png');
$file = $_FILES['avatar']['name'];
$fileext = strtolower(end(explode('.', $file)));
$filetmp = $_FILES['avatar']['tmp_name'];
if(in_array($fileext, $ext)){
$file = md5(microtime() . $filetmp) . '.' . $fileext;
$filepth = './data/user_data/img/udid/prof/' . $file;
move_uploaded_file($filetmp, $filepth);
} else {
$errors[] = 'Please select a valid file type. (JPG, JPEG or PNG)';
}
}
}
?>
<form action="" method="post" class="avatar-form-form" enctype="multipart/form-data">
<input type="file" name="avatar"><br>
<input type="submit" value="Upload">
</form>
。
然后我通过将文件变量连接到目录的末尾来创建文件路径变量。
然后我通过传递md5hash.png
和$filetmp
变量继续执行文件上传功能(就像你应该做的那样)。
但是,当我在我的页面上测试此功能时,我会收到以下错误:
$filepth
这是我目前的布局:
设置页面(用户上传图片的页面)位于根目录中。
我想放置头像的位置在文件夹内(也在根目录中。
我目前正在运行XAMPP的MacBook上测试所有这些,并确保将file_uploads设置为&#34; on&#34;在我的Warning: move_uploaded_file(./data/user_data/img/udid/prof/e4d0cde3c9330222ef3ab651fe797bed.jpg):
failed to open stream: Permission denied in /Applications/XAMPP/xamppfiles/htdocs/test/settings.php
on line 40
Warning: move_uploaded_file(): Unable to move '/Applications/XAMPP/xamppfiles/temp/phpkWSGLy'
to './data/user_data/img/udid/prof/e4d0cde3c9330222ef3ab651fe797bed.jpg'
in /Applications/XAMPP/xamppfiles/htdocs/test/settings.php
on line 40
文件中。
感谢所有帮助。不确定如果我做错了,但我几乎可以肯定我没有。
修改
所以,事实证明,默认情况下,MacBook(运行XAMPP时),XAMPP / htdocs内的所有文件都设置为只读,你必须手动将它们设置为&#34; read&amp;写&#34;允许php.ini
工作。
答案 0 :(得分:1)
检查您是否在MacBook中为上传的图像文件夹设置了正确的写入权限。