繁体   English   中英

我可以将正则表达式模式传递给url以发送到服务器进行处理吗?

[英]Can I pass regular expression pattern into url to send to server to process?

我的情况是:我有两个IIS站点:A(文件上传,使用ASP.NET MVC),B(普通网站,使用ASP.NET)。 B调用A(在iframe中,将一些参数(包括acceptFileType传递给URL)传递给A)以过滤文件上传。

在B上:我通过http://www.urlofA.com/Home/Upload?acceptFileTypes= “ image / *,application / pdf”

在A上:在控制器中:

public ActionResult Upload(string path, string acceptFileTypes = "*/*", bool dialog = true)
{            
    ViewBag.AcceptFileTypes = acceptFileTypes;            
    return View();
}

在Upload.chtml中:

<input type="file" accept=@ViewBag.AcceptFileType"/>

当我单击“确定”按钮时,我确认文件有效以确保仅必须上传接受的类型,因为用户可以在对话框中选择文件并获取其他文件来更改视图文件。 我用正则表达式检查它。

this.acceptType.test(file.type) && this.acceptType.test(file.name)

我在A上定义的正则表达式:

$('#file').fileUpload{
    acceptType: /(\.|\/)(pdf|gif|jpe?g|png|bmp)$/i
}

目前,我只是通过acceptFileType在UI中进行处理,我无法通过acceptType在js中进行验证。

我尝试将acceptType传递到url中,但出现“未捕获的TypeError:未定义不是函数”

使用此代码来验证您的文件

var ext = $('#my_file_field')。val()。split('。')。pop()。toLowerCase();

if($。inArray(ext,['gif','png','jpg','jpeg'])== -1){

alert('invalid extension!');

}

正如@AntP所说,它将在我的应用程序中具有很大的安全间隔。 我将稍微改变我的业务逻辑,将某些事情从业务转移到站点。 我将以此为答案。 感谢AntP

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM