代码之家  ›  专栏  ›  技术社区  ›  stack

使用file\u get\u contents()函数时,等效的$\u文件[“imageToUpload”][“tmp\u name”]

  •  0
  • stack  · 技术社区  · 8 年前

    我有这样一个函数:

    fitImageSizeAndSave($_FILES["imageToUpload"]["tmp_name"], $target_file) { ... }
    

    该功能运行良好。第一个参数是 $_FILES["imageToUpload"]["tmp_name"] . 好的,当用户从本地计算机上传图像时,这很好。但有时他会进入一个外部链接,我会得到这样的图像:

    $image = file_get_contents($_POST['external_link']);
    

    我怎样才能 $image 喜欢 $\u文件[“imageToUpload”][“tmp\u名称”] 将其传递给函数?

    2 回复  |  直到 8 年前
        1
  •  0
  •   Martin Miguel Stevens    8 年前

    使用 file_put_contents() 然后引用刚刚将数据放入的临时文件


    @马丁听起来是个好主意,你能补充一个答案吗?


    $_FILES["imageToUpload"]["tmp_name"] 只是服务器上文件位置的字符串,它本身不是Resource。

    $filePathLocation = $_SERVER['DOCUMENT_ROOT']."/some-temporary/file/storage";
    $imageData = file_get_contents($_POST['external_link']);
    
    if($imageData){
         file_put_contents($imageData, $filepathLocation);
    }
    else {
         $filepathLocation = $_FILES["imageToUpload"]["tmp_name"];
    }
    
    fitImageSizeAndSave($filepathLocation, $target_file) { ... }
    

    以上,逐步:

    • 设置临时存放位置;可能基于 microtime() 或者一些唯一的(数据库Id,如果相关的话)来限制不同的进程覆盖相同的文件路径。

    • 获取 $_POST 文件URL。保存到字符串变量。

    • 检查 if 变量加载正常; else 使用上载的临时文件位置 这仅用于说明 -您应该有一个更完整的过程来检查要使用的数据以及脚本中已设置的所述数据的有效性。

    • 将此变量发送到自定义函数,知道它已填充了上述一种或另一种可能性。

        2
  •  -1
  •   Manikanta    8 年前

    下面是从url获取图像并保存到定位机或自己的服务器的PHP脚本

    $imageurl ='http://i.ndtvimg.com/i/2015-08/mahesh-babu_630x450_81440064359.jpg';
    
    $content = file_get_contents($imageurl);
    
    if(file_put_contents('imagefolder/randomImageName.jpg', $content)){
         echo "File uploaded through URL";
    }else{
        echo "File not uploaded...";
    }
    
    推荐文章