我正在尝试通过CRUD将文件上传到我的服务器。我在将上传的文件移动到存在的新目录时遇到问题。
我收到此警告。
Warning: move_uploaded_file(../images/me.png): failed to open stream: Permission denied in /var/www/html/admin/addpicture.php
Warning: move_uploaded_file(): Unable to move '/tmp/phpHQ6U5X' to '../images/me.png'
意识到这可能是/ tmp的权限问题,因此我决定更改临时上传文件夹。
我在phpinfo()中列出的php.ini文件中设置了一个临时上传文件夹
Configuration File (php.ini) Path /etc/php/7.0/apache2
我使用重新启动服务器
sudo systemctl restart apache2
我检查以确保再次使用phpinfo()设置了我的更改
upload_tmp_dir /var/www/html/upload_tmp
此外,我检查了是否设置了我的basedir
open_basedir no value
我尝试再次上传文件
Warning: move_uploaded_file(): Unable to move '/tmp/phpHQ6U5X' to '../images/me.png'
我包括了完整性代码,但是我可以确认该代码在localhost和我工作过的其他服务器上都对我有用。
PHP
if(isset($_FILES) & !empty($_FILES)){
$name = $_FILES['pictureimage']['name'];
$size = $_FILES['pictureimage']['size'];
$type = $_FILES['pictureimage']['type'];
$tmp_name = $_FILES['pictureimage']['tmp_name'];
$max_size = 10000000;
$extension = substr($name, strpos($name, '.') + 1);
if(isset($name) && !empty($name)){
if($size<=$max_size){
$location = '../images/';
$filepath = $location.$name;
if(move_uploaded_file($tmp_name, $filepath)){
HTML
<input type="file" name="pictureimage" id="pictureimage">
我想念什么?为什么表单会继续上传到/ tmp而不是我设置的upload_tmp_dir?