apache中的权限级别

时间:2015-03-06 06:17:51

标签: php mysql apache web file-permissions

我正在为我的部门开发一个网站。我在Ubuntu中使用临时服务器apache。我在从文件夹访问文件时遇到了麻烦。我有一个情况,我会上传一张照片,它将存储在文件夹/ var / www / web / uploads中,其路径存储在mysql php数据库中。我在保存数据库中的路径和上面的文件夹中没有问题,但是当我尝试在网站中显示时,我无法访问它。它说我不是老板。它显示www-data作为所有者。我知道我应该更改终端的权限级别。我尝试了最大值,但我没有取得丰硕成果。任何人都可以帮助我改变其权限级别。

//这是html代码indeximg.php

  <html> 
  <head>
  <title>File Upload with PHP</title>
  <link href="styleimg.css" rel="stylesheet" type="text/css" />
  </head>
  <body>
  <div id="theForm">
  <form action="uploader.php" enctype="multipart/form-data" method="post" >
  <label>Title
  <span class="small">Title of the File</span>
  </label>
  <input type="text" name="mName" id="mName" />
  <label>File
  <span class="small">Choose a File</span>
  </label>
  <input type="file" name="mFile" id="mFile" />
  <button type="submit" class="red-button" id="sendmail">Upload (<?php echo ini_get('upload_max_filesize').'B'; ?>)</button>
  <div class="spacer"></div>
  </form>
  </div>
  </body>
  </html>

//这是文件加载器代码       

  // replace with your mysql database details
  $MySql_username   = "shwetharao"; //mysql username
  $MySql_password   = "shwetha"; //mysql password
  $MySql_hostname   = "localhost"; //hostname
  $MySql_databasename = 'semilab'; //databasename
  if (!@file_exists($UploadDirectory)) {
  //destination folder does not exist
  die("Make sure Upload directory exist!");
  }

  if($_POST)
  { 
  if(!isset($_POST['mName']) || strlen($_POST['mName'])<1)
  {
    //required variables are empty
    die("Title is empty!");
   }


   if($_FILES['mFile']['error'])
   {
    //File upload error encountered
    die(upload_errors($_FILES['mFile']['error']));
   }

   $FileName            = strtolower($_FILES['mFile']['name']); //uploaded file name
   $FileTitle           = mysql_real_escape_string($_POST['mName']); // file title
   $ImageExt            = substr($FileName, strrpos($FileName, '.')); //file extension
   $FileType            = $_FILES['mFile']['type']; //file type
   $FileSize            = $_FILES['mFile']["size"]; //file size
   $RandNumber          = rand(0, 9999999999); //Random number to make each filename unique.
   $uploaded_date       = date("Y-m-d H:i:s");

   switch(strtolower($FileType))
   {
    //allowed file types
    case 'image/png': //png file
    case 'image/gif': //gif file 
    case 'image/jpeg': //jpeg file
    case 'application/pdf': //PDF file
    case 'application/msword': //ms word file
    case 'application/vnd.ms-excel': //ms excel file
    case 'application/x-zip-compressed': //zip file
    case 'text/plain': //text file
    case 'text/html': //html file
        break;
    default:
        die('Unsupported File!'); //output error
    }


//File Title will be used as new File name
  $NewFileName = preg_replace(array('/\s/', '/\.[\.]+/', '/[^\w_\.\-]/'),  array('_', '.', ''), strtolower($FileTitle));
  $NewFileName = $NewFileName.'_'.$RandNumber.$ImageExt;
  $UploadDirectory  = "/var/www/web/".$NewFileName;
  echo $UploadDirectory;

  //Rename and save uploded file to destination folder.
  if(move_uploaded_file($_FILES['mFile']["tmp_name"], $UploadDirectory))
  {
    //connect & insert file record in database
    $dbconn = mysql_connect($MySql_hostname, $MySql_username,    $MySql_password)or die("Unable to connect to MySQL");
    mysql_select_db($MySql_databasename,$dbconn);
    @mysql_query("INSERT INTO file_recordimg (file_name, file_title, file_size, uploaded_date , uploaded_path) VALUES ('$NewFileName', '$FileTitle',$FileSize,'$uploaded_date','$UploadDirectory')");
    mysql_close($dbconn);

    header('Location: '.$SuccessRedirect); //redirect user after success

   }else{
    die('error uploading File!');
   }
  }

  //function outputs upload error messages, http://www.php.net/manual/en/features.file-upload.errors.php#90522
 function upload_errors($err_code) {
 switch ($err_code) { 
 case UPLOAD_ERR_INI_SIZE: 
  return 'The uploaded file exceeds the upload_max_filesize directive in php.ini'; 
    case UPLOAD_ERR_FORM_SIZE: 
        return 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'; 
    case UPLOAD_ERR_PARTIAL: 
        return 'The uploaded file was only partially uploaded'; 
    case UPLOAD_ERR_NO_FILE: 
        return 'No file was uploaded'; 
    case UPLOAD_ERR_NO_TMP_DIR: 
        return 'Missing a temporary folder'; 
    case UPLOAD_ERR_CANT_WRITE: 
        return 'Failed to write file to disk'; 
    case UPLOAD_ERR_EXTENSION: 
        return 'File upload stopped by extension'; 
    default: 
        return 'Unknown upload error'; 
   } 
   } 
   ?>

///输出

 <?php

  $MySql_username   = "shwetharao"; //mysql username
  $MySql_password   = "shwetha"; //mysql password
  $MySql_hostname   = "localhost"; //hostname
  $MySql_databasename = 'semilab'; //databasename

  $dbconn = mysql_connect($MySql_hostname, $MySql_username,    $MySql_password)or die("Unable to connect to MySQL");
    mysql_select_db($MySql_databasename,$dbconn);
    $sql = 'SELECT uploaded_path
    FROM file_recordimg';

  $retval = mysql_query( $sql, $dbconn );
  if(! $retval )
  {
  die('Could not get data: ' . mysql_error());
  }
  while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
  {
   echo "$row[uploaded_path]";
   ?>
   <table style="border-collapse: collapse; font: 12px Tahoma;" border="1">
    <tbody><tr>
   <td>
   <img src="<?php echo $row[uploaded_path];?>">

    </td>
    </tr>
    </tbody></table>


    <div align="center"><strong>Success.. File uploaded!</strong></div>
    <?php
    }
    mysql_close($dbconn);

     ?>

1 个答案:

答案 0 :(得分:-1)

试试这个

以root用户身份登录linux服务器。转到您的上传文件夹并授予777上传文件夹的权限,然后重试