Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 上传无效文件时,Telerik RadAsyncUpload UploadedFile Count为0_C#_Asp.net - Fatal编程技术网

C# 上传无效文件时,Telerik RadAsyncUpload UploadedFile Count为0

C# 上传无效文件时,Telerik RadAsyncUpload UploadedFile Count为0,c#,asp.net,C#,Asp.net,您好,我使用的是TelerikRadAsyncUpload,我保留了一个过滤器,。仅允许使用csv文件 在设计器中: <telerik:RadAsyncUpload ID="RadAsyncUpload1" runat="server" EnableInlineProgress="true" UploadedFilesRendering="BelowFileInput" HideFileInput="true" ClientIDMode="AutoID" Multipl

您好,我使用的是
Telerik
RadAsyncUpload
,我保留了一个过滤器,
。仅允许使用csv
文件

在设计器中:

<telerik:RadAsyncUpload ID="RadAsyncUpload1" runat="server" 
    EnableInlineProgress="true" UploadedFilesRendering="BelowFileInput" 
    HideFileInput="true" ClientIDMode="AutoID" MultipleFileSelection="Disabled"
    Localization-Select="Choose File" Width="100%"
    AllowedFileExtensions=".csv,.CSV" AllowedMimeTypes="application/csv"
    Filter="Others(*.csv;*.CSV)|*.csv;*.CSV" 
    MaxFileInputsCount="1">
    <FileFilters>
        <telerik:FileFilter Description="Others(*.csv;*.CSV)|*.csv;*.CSV"
            Extensions=".csv,.CSV" />
    </FileFilters>
    <Localization Select="Choose File" />
</telerik:RadAsyncUpload>
var csv = new[] { ".csv" };
rauploadCSVFile.AllowedMimeTypes = csv;
rauploadCSVFile.AllowedFileExtensions = csv;
上传的
.csv
文件的颜色指示为绿色,非
.csv
文件的颜色指示为红色——好的,我这里没有问题

但当上载非
.csv
文件时,
RadAsyncUpload1.UploadedFiles.Count
返回0,这里的事实是上载了1个无效文件(非.csv文件),这意味着Count必须是1

我现在处于一个场景中:

场景1:当未提供任何文件时
RadAsyncUpload1.UploadedFiles.Count
返回0,现在用户显示消息:
文件是必需的

场景2:当给出非.csv文件时,仍然
RadAsyncUpload1.UploadedFiles.Count
返回0,现在用户显示消息:
只允许csv文件。

问题1:我如何才能做到这一点

问题2:如何使RadAsyncUpload1显示文件上载对话框窗口的过滤器仅显示 其他(*.csv)而不是所有文件(*.*)…等


因此,在选择时,文件系统中只显示.csv。

RadAsyncUpload会阻止上载无效文件。您需要执行客户端验证来设置适当的消息,因为当它到达服务器时,文件不在那里,因为它不是CSV。看看Telerik在

它们甚至提供了一个示例来查看文件扩展名是否在允许的列表中

编辑:要从数据库中获取错误字符串,可以添加如下内容

var badFileName = '<asp:Literal runat="server" ID="litBadFileName" />';
var noFile = '<asp:Literal runat="server" ID="litNoFile" />';
var badFileName='';
var noFile='';

然后在从数据库加载的页面上填充这两个文本。

您好,谢谢您的支持

问题1答案: 我明白了,我删除了designer和代码隐藏中允许的文件扩展

<telerik:RadAsyncUpload ID="RadAsyncUpload1" runat="server" EnableInlineProgress="true" 
        UploadedFilesRendering="BelowFileInput" HideFileInput="true" ClientIDMode="AutoID" 
    MultipleFileSelection="Disabled" Localization-Select="Choose File" 
    Width="100%" MaxFileInputsCount="1"
 OnClientFileSelected="OnClientFileSelected" OnClientAdded="OnClientAdded">
<Localization Select="Choose File" /> </telerik:RadAsyncUpload>

完成了!!!:-)享受..

从XAML中删除过滤器,并在代码隐藏中检查文件是否为CSV类型,然后显示消息。如果您正确使用过滤器值,您应该只能上载.CSV文件,因为它在上述代码中,我希望是有效值,但无法实现!!!!在filter
Text Files(*.csv)|*.csv
Hi user2526236中尝试此选项,我尝试了FileFilters=“Text Files(*.csv)|*.csv”进行RadAsyncUpload,但没有使用文件上传对话框中的“仍然过滤”弹出窗口显示所有文件(**)您对此有何看法?我从未使用过他们的WPF/Silverlight控件,正如您所注意到的,这只是标记为C#。您好dman2306,非常感谢您的回复,但我从数据库中获得了验证消息,我的应用程序与语言无关。那么,有没有可能在服务器端进行验证呢?好主意,仍然可行。我要做的是在Page_Load或类似事件中从数据库获取错误消息,并将它们存储在JavaScript变量中。然后你可以设置一个合适的。好的,我会在这里发帖让你知道。嗨,dman2306,我能在客户端获得同样的功能吗?反之亦然??i、 我正在删除设计器和代码隐藏中允许的文件扩展名。现在,颜色指示始终为绿色。现在我可以检查客户端的.csv扩展名了吗?对于非.csv文件,我可以将该扩展名改为红色吗?
function OnClientFileSelected(sender, args) 
    {
        var fileExtention = args.get_fileName().substring(args.get_fileName().lastIndexOf('.') + 1, args.get_fileName().length);
        if (args.get_fileName().lastIndexOf('.') != -1)
        {
          var colorSpan = $('#<%=RadAsyncUpload1.ClientID%> ul li span span');
                            //checks if the extension is correct
          if (fileExtention.toLowerCase() == "csv")
          {
             colorSpan.removeClass("ruUploadFailure").addClass("ruUploadSuccess");
          }
          else
          {
             colorSpan.removeClass("ruUploadSuccess").addClass("ruUploadFailure");
          }
        }
    }
function OnClientAdded(sender, args) {
    document.getElementById($('input[type=file]').attr('id')).accept = ".csv";
}