1

我正在尝试通过将文件浴从 javascript 传递到 php 文件然后返回结果来获取文件的大小,问题是 javascript 将文件浴传递为以下 ex, c:\fakepath\NAME OF THE FILE ,因此 php 文件得到一个错误的路径,所以总是返回错误!

 $(document).ready(function (){


        $("#file").click(function (){


            fileBath=$("#name").val();

                $.get('newfile2.php','fileBath='+fileBath,function(data){
                alert(data);

                    });
            });
});

.php 文件

getmax($_GET['fileBath']);

function getmax($fileBath){

    $value=filesize($fileBath);
    echo  $value;

}

正如我所说的 php 文件中的返回值 FALSE 因为文件浴是错误的!

4

4 回答 4

4

文件输入的目的是允许上传文件。访问者文件系统的结构被认为是网站不应该需要的机密信息。

没有办法绕过 fakepath 替换,因为它可以保护访问者的隐私。

于 2012-07-01T16:20:17.153 回答
1

由于 HTML5 浏览器的出现执行了严格的规则来保护用户的隐私,而 fakepath 用于隐藏文件的真实路径,即使在 MAC 上路径也是C:\\fakepath..

所以你只能检测文件的名称而不是它的真实路径,试试这个::

var filename = $('#name').val().replace(/C:\\fakepath\\/i, '');
于 2012-07-01T16:33:27.880 回答
0

使用 php str_replace 或 preg_replace 。它将替换不必要的空间或任何你想要的,那么就不会有任何问题

于 2012-07-01T16:19:46.320 回答
0

JavaScript 解决方案:

document.getElementById("fileInput").files[0].name;

jQuery解决方案:

$("#fileInput")[0].files[0].name;
于 2015-05-27T09:12:37.863 回答