javascript – 是否可以预览本地图像,然后通过表单上传?

更具体地说,我想使用一个表单与一个或多个文件输入字段用于图像.当这些字段更改时,我想在将数据发送到服务器之前显示相关映像的预览.

我尝试了一些JavaScript方法,但是我总是遇到安全错误.
我不会介意使用java或flash,只要解决方案正常退化给那些没有他们的用户. (他们不会得到预览,他们也不会得到一个烦人的“安装这个东西”).

有没有人以简单,可重复的方式做到这一点?

附:我知道有一个沙盒,但沙箱必须在一个黑暗的锁着的房间里,所有的窗户都熄灭了?

最佳答案
你们都错了不需要花哨的东西所有你需要的是createObjectURL函数,它创建一个可以用作图像src的URL,并且可以直接从本地文件.

假设您使用文件输入元素(< input type =“file”/>))从用户的计算机中选择了几张图像,那么您将如何为其创建图像文件的预览:

function createObjectURL(object) {
    return (window.URL) ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object);
}

function revokeObjectURL(url) {
    return (window.URL) ? window.URL.revokeObjectURL(url) : window.webkitURL.revokeObjectURL(url);
}

function myUploadOnChangeFunction() {
    if(this.files.length) {
        for(var i in this.files) {
            var src = createObjectURL(this.files[i]);
            var image = new Image();
            image.src = src;
            // Do whatever you want with your image, it's just like any other image
            // but it displays directly from the user machine, not the server!
        }
    }
}

转载注明原文:javascript – 是否可以预览本地图像,然后通过表单上传? - 代码日志