微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何获取用户文件上传的完整路径?

如何解决如何获取用户文件上传的完整路径?

我们的Intranet上有一个问题跟踪系统,需要在其中添加受影响的文件包括文件的路径。

我们一直在使用asp.net FileUpload控件,并使用FileUpload1.PostedFile.FileName获取用户选择并上传文件的路径。这些文件通常不在用户本地计算机上,而是在与问题跟踪系统不同的服务器上的网络驱动器上。我们将上传用作将文件添加到问题跟踪器的简便方法

出于安全原因,这在任何最新的浏览器中均不起作用,仅在即将淘汰的Internet Explorer上有效。

有什么办法可以使它正常工作吗?至少对于Intranet网站?还是有更好的方法解决这个问题?我们确实确实需要文件路径,并且如果我们必须复制和粘贴它,则此过程将花费更长的时间,因为这将使其分为两个步骤,并且经常需要添加许多文件

这是asp.net页面摘要

<asp:FileUpload ID="FileUpload1" runat="server" />

这是我获取文件路径的方式:

Dim sFileLocation As String = ""
Dim sFileName As String = ""
Dim sExtension As String = ""

sFileName = GetFileName(Me.FileUpload1.FileName)
sExtension = GetExtension(Me.FileUpload1.FileName)
sFileLocation = Me.FileUpload1.PostedFile.FileName
sFileLocation = sFileLocation.Replace(sFileName,"")

解决方法

这仅适用于IE 11,未测试IE edge。 Chrome无法正常运行。 由于有Intranet,我们只允许在内部使用IE。

Here is the full path of the file came from in IE 11

这是我用来检查文件大小和名称的逻辑,validateFile函数可以毫无问题地获取文件路径

            <asp:FileUpload ID="fuAFS" runat="server" CssClass="cssAFS cssFu" AllowMultiple="false" Width="550px" />&nbsp;<asp:Button ID="btnAFS" runat="server" Text="Upload AFS" OnClientClick="return ValidateFile('cssAFS');" />



           function ValidateFile(cssName) {
                var fu = $('.' + cssName);
                //Empty upload control file.length == 1
                if (fu.length > 0) { //Upload control exists
                    var pathName = fu.val();
                    if (pathName == '') {
                        alert('Missing file. Please click the Browse button to select a file with extension pdf.');
                        return false;
                    }
                }
                return true;
            }
            $('.cssFu').on('change',function (e) {
                var maxFileSize = $('#<%=hdnMaxFileSize.ClientID%>').val();
            if (e.target.files.length == 1) {
                if (e.target.files[0] != null) {
                    var size = e.target.files[0].size; //IE 
                    var fileSize = e.target.files[0].fileSize; //Firefox
                    var pathName = $(this).val();
                    var ext = pathName.substring(pathName.lastIndexOf(".") + 1,pathName.length).toLowerCase();
                    if (size > maxFileSize * 1024 * 1024 || fileSize > maxFileSize * 1024 * 1024) {
                        alert('File size exceeds limit. Maximum file size permitted is ' + maxFileSize + ' MB.');
                        $(this).val('');
                        // Prevent form Upload
                        e.stopPropagation();
                        e.preventDefault();
                    } else if (ext != 'pdf') {
                        alert('Invalid File. Please upload a File with extension: PDF');
                        $(this).val('');
                        // Prevent form Upload
                        e.stopPropagation();
                        e.preventDefault();
                    }
                    var fileName = pathName.substring(pathName.lastIndexOf("\\") + 1,pathName.length);
                    if (fileName != '' && fileName.length > 100) {
                        alert('File name length over 100 characters,please rename the file and upload again.');
                        $(this).val('');
                        // Prevent form Upload
                        e.stopPropagation();
                        e.preventDefault();
                    }
                }
            }
,

@rgorr-出于安全原因,FileUpload永远不会为您提供完整路径。

Server.MapPath(FileUpload1.FileName);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。