如何获得用户的完整路径's类型=“;文件“;使用jQuery Fileupload

How to get full path to user's type="file" using jQuery Fileupload

本文关键字:类型 文件 Fileupload jQuery 使用 用户 何获得 路径      更新时间:2023-09-26

我试图在文件上传到服务器之前构建文件预览功能。

我遇到了从用户的计算机而不是服务器读取文件的问题

我通常使用jquery Fileupload,它在更改函数上启动文件处理

  return $('#new_order_file').fileupload({
    change: function(e, data) {
        return $.each(data.files, function(index, file) {
            read_file(file);
            console.log(file)
        });
    },
  });

日志提供文件名、大小、类型、proto和LastmodifiedDate

这部分对我来说很棘手,我知道我必须使用FileReader(),但我不确定如何

function read_file(f){
    var reader = new FileReader();
    reader.onload = function(e) {
        $('#CO-show-model').css('display', 'block');
        loaded(f.name, e.target.result);
    };
    reader.readAsArrayBuffer(f);
}

接下来,加载的函数是使用three.js 显示文件模型

function loaded(file) {
    var uploaded_file = file // gives 404
    // var uploaded_file = './stl/test-file.stl' // ASCII test
}

功能本身很好,我用一些测试文件的硬编码路径对它进行了测试。但问题是它在服务器上。现在,脚本为http://example.com/filename.stl这是真的,因为我在那里通过file.name。如果我只通过file,它给出404http://example.com/[对象%20File]

编辑1:我试着建议使用ReadAsDataUrl,但似乎三个.js都不支持它。此外,FileReader()似乎还可以

您的file是一个对象,因此您必须从中获得正确的属性。点击此处查看Filereader Mozilla文档

这是一个安全功能。浏览器不会给你上传文件的实际本地url。

请参阅如何在<输入类型="文件">使用javascript,jquery ajax?

编辑:也许你想要的是这个问题?在Three.js 中加载STL文件的首选方法是什么