javascript - 如何将文件路径转换为 ​​blob 对象?

标签 javascript forms

我有一个字符串,它是我系统上文件的路径(例如:/var/www/html/country.png)

我需要使用 javascript/angular6 将此文件上传到服务器。但问题是服务器接受要作为 html 输入文件对象或 blob 发送的文件。

例如这段代码上传文件成功

            var form = new FormData();
            form.append("filedata", $('input[type=file]')[0].files[0]);
            form.append("overwrite", "true");

            var settings = {
                "async": true,
                "crossDomain": true,
                "url": "https://www.example.com/api/upload",
                "method": "POST",
                "headers": {
                    "authorization": "Basic XXXXXXX=="
                },
                "processData": false,
                "contentType": false,
                "mimeType": "multipart/form-data",
                "data": form
            }

            $.ajax(settings).done(function (response) {
                console.log(response);
            });

有什么方法可以做到这一点。

最佳答案

如果这是可能的,那将是一个巨大的安全漏洞。想象一下任何网站都能够通过字符串访问文件(提示:/etc/passwd 在每个 Linux 发行版上都位于同一位置)。

简而言之,不可能。用户必须在 <input type="file" /> 打开的上传对话框中主动选择文件,您无法控制此过程。

关于javascript - 如何将文件路径转换为 ​​blob 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52199562/

相关文章:

forms - Play Framework 2.1 Scala - 日期的表单绑定(bind)

windows - 如何在 powershell 中关闭 Windows 窗体?

java - 不用js获取checkbox是否勾选

php - PHP的 fatal error

django - 使用 Form 标签获取 Django 模板中模型的名称

javascript - 删除不包含字符的 HTML 元素或

javascript - jQuery 不调整滚动位置

javascript - 找不到模块 'jsonwebtoken' Node.js

javascript - 如何使用扩展运算符向对象添加属性而不是覆盖它?

javascript - 为什么RxJS运算符过滤和映射大尺寸数组比Javascript数组方法更快?