表单正在上传到/ tmp / phpHQ6U5X而不是新设置的/ var / www / html / upload_tmp

时间:2019-04-13 22:23:31

标签: php

我正在尝试通过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?

0 个答案:

没有答案