为简历文件上载获取用户完整文件路径


Get User Complete File Path for resume File Upload

这可能没有答案,但我还是会问,因为我在谷歌里找不到任何东西。我有一个主要使用php和HTML5创建的文件上传网站。我知道,使用HTML5分块系统,我可以通过在服务器上检查上传了哪些分块来进行某种暂停和恢复文件上传。但它要求用户尝试上传相同的文件才能正常工作。

现在,我想知道,在用户第一次尝试上传文件时,是否可以获得用户的完整文件路径,以便将该路径保存到数据库中。如果发生了什么事情,我可以在网站上告诉用户点击此处继续(然后,由于我有文件路径,我可以自动提交,而不需要用户再次尝试浏览该文件)。

我知道如果使用java,我们可以做到这一点(使用签名证书),但无论如何,是否有使用首选php、javascript或html5的方法可以实现这一点。我尽量避免java。或者其他语言?

注意:这个文件上传是为巨大的上传(范围从1MB-4GB文件),到目前为止,它工作得非常好。我只是想在这个项目中添加暂停/恢复功能。

我不介意购买可信证书或smtg,以便工作

或者无论如何,也许可以使用silverlight获取文件路径,然后在我获得文件路径后,以html形式自动提交给我的php,以处理暂停-恢复功能

感谢

您可以使用FileReader和某种本地存储来本地存储图像并从缓存上传。我在这里写了一个使用sessionStorage解决类似问题的例子:获取缓存图像的完整文件路径

var input = document.querySelector("#imageInput");
input.addEventListener("change", function(e){
    var reader = new FileReader();
    reader.onload = function(evt){
        var newImage = document.createElement("img");
        newImage.src = evt.target.result;
        document.querySelector("body").appendChild(newImage);
        sessionStorage.setItem("image", evt.target.result);
    };
    reader.readAsDataURL(e.target.files[0]);
}, false);
window.addEventListener("load", function(e){
    if(sessionStorage.getItem("image")){
        var newImage = document.createElement("img");
        newImage.src = sessionStorage.getItem("image");
        document.querySelector("body").appendChild(newImage);
    }
}, false);

因此,您所要做的就是引用缓存的图像。

AFAIK,由于安全原因,浏览器永远不会允许您上传文件,除非用户亲自挑选我的意思是,他们甚至不允许您以编程方式打开浏览窗口,用户需要单击browse按钮,否则您的表单中就不能有文件字段。但这都是HTML,一旦你接受使用第三方插件,如java小程序、flash或silverlight,那就另当别论了。你可以用这种方式做任何你想做的事。

但我认为这不是一个好方法,如果是我,我会做一些不同的事情。我会提示用户上传的文件不完整,只是通过他们的名字,而不是他们的路径。为了检查上传文件是新文件还是旧文件的简历,我会在本地计算它的MD5签名,并在实际发送文件之前发送到服务器。此外,您还需要将所有上传文件的签名存储在服务器中,以便将来进行比较。我不确定实现或如何实现的部分是告诉浏览器从哪个区块开始上传文件!

尝试提及文件夹的路径,并尝试在数据库中只输入文件的名称,因为它不会更改路径,也有助于上传。

做一些类似的事情

 D/abc/<?php $row['fieldname under which file is stored'];?>

现在文件被上传到abc文件夹下的d驱动器中