【问题标题】:Azure window sever can't upload file from phpAzure 窗口服务器无法从 php 上传文件
【发布时间】:2016-03-01 12:54:29
【问题描述】:

我在 localhost 和其他 websever 上测试没问题。

但是当我在 azure sever 中上传时,它无法将文件上传到文件夹

这是我的代码

    if(isset($_FILES['pic'])){
      $errors= array();
      $file_name = $_FILES['pic']['name'];
      $file_size = $_FILES['pic']['size'];
      $file_tmp = $_FILES['pic']['tmp_name'];
      $file_type = $_FILES['pic']['type'];
      $file_ext=strtolower(end(explode('.',$_FILES['pic']['name'])));

      $expensions= array("jpeg","jpg","png");

      if(in_array($file_ext,$expensions)=== false){
         $errors[]="extension not allowed, please choose a JPEG or PNG file.";
      }

      if($file_size > 2097152) {
         $errors[]='File size must be excately 2 MB';
      }

      if(empty($errors)==true) {
         move_uploaded_file($file_tmp,"uploadimg/".$us_id.".jpg");
         echo "ican";

      }else{
         print_r($errors);
      }
   }

但它回显“ican”,我怀疑它是否有许可?

【问题讨论】:

    标签: php azure


    【解决方案1】:

    Azure Web 应用仅授予您写入根文件夹的权限。看起来您正在写入“uploadimg”文件夹。

    强烈建议您改为上传到 Azure Blob 存储。

    您可以在此处找到 PHP 的说明:

    https://azure.microsoft.com/en-us/documentation/articles/storage-php-how-to-use-blobs/

    【讨论】:

    • 这意味着我可以在 wwwroot 文件夹上传?
    • 是的,您的应用程序应该能够写入网站本身的根目录 wwwroot 文件夹。同样,最好的方法是使用 blob 存储。希望这会有所帮助!
    • 我改为上传到 wwwroot 但它没有出现
    • 留空。即 move_uploaded_file($file_tmp,"".$us_id.".jpg");
    • 我在这里设置了一个快速演示站点phpuploadtest.azurewebsites.net 代码可以在这里找到github.com/joescars/PHPUpload
    【解决方案2】:

    请仔细检查您是否在根目录中创建了名为uploadimg 的文件夹。

    默认情况下,Azure Web Apps 不显示 PHP 错误,因此如果您的目录中没有 uploadimg 文件夹,PHP 进程将引发 Waring 异常并且不会停止进程,因此您可以见“ican”,也没有图片。

    你也可以添加句子:

    error_reporting(E_ALL);
    ini_set('display_errors', 'On');
    

    在您的 PHP 脚本中显示异常消息以进行故障排除。

    【讨论】:

    • 是的,在我的 wwwroot 文件夹中有 uploadimg,当我上传图片时进入文件夹
    猜你喜欢
    • 2019-08-09
    • 2013-09-12
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 2021-06-07
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多