V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pytth
V2EX  ›  程序员

浏览器上传图片如何获得本地文件的真实磁盘路径

  •  
  •   pytth · 2020-02-12 23:53:15 +08:00 · 1613 次点击
    这是一个创建于 1533 天前的主题,其中的信息可能已经有所发展或是发生改变。

    下面代码是通过 CURL 模拟表单 POST 上传图片,其中需要用到本地真实路径 D:\phpstudy\PHPTutorial\WWW\20200212\1.jpg

    <?php
    //设置 header
    header("Content-type:application/json");
    
    //初始化 CURL
    $ch = curl_init();
    
    //目标服务器地址
    curl_setopt($ch, CURLOPT_URL, 'http://my.zol.com.cn/index.php?c=Ajax_User&a=uploadImg');
    
    //设置上传的文件
    curl_setopt($ch, CURLOPT_POST, true);
    $data = array(
    	'myPhoto' => new CURLFile('D:\phpstudy\PHPTutorial\WWW\20200212\1.jpg')
    );
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    
    curl_exec($ch);
    curl_close($ch);
    ?>
    

    浏览器如何获得这个路径?或者有没有代替方法?

    muzuiget
        1
    muzuiget  
       2020-02-13 04:37:47 +08:00
    按照网页标准,本来就是无法获得完整路径,只有文件名。
    pytth
        2
    pytth  
    OP
       2020-02-13 09:29:45 +08:00
    @muzuiget 那么怎么从前端把文件路径传给后端?
    RedisMasterNode
        3
    RedisMasterNode  
       2020-02-13 10:14:23 +08:00
    @pytth 你不能拿到完整路径,如果你要上传,浏览器会发起请求将文件本身( binary ) POST 给服务端,但是浏览器不会给你这个路径,不管你怎么修改代码你都拿不到路径
    pytth
        4
    pytth  
    OP
       2020-02-13 10:42:39 +08:00
    @RedisMasterNode 恩,找了很多方法都无法实现,这应该是安全性问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5040 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 03:54 · PVG 11:54 · LAX 20:54 · JFK 23:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.