使用Ajax Web服务将文件路径从Javascript传递到c#
Passing File Path From Javascript to C# Using Ajax Web Service
我有一个ASP。带有按钮的。Net网站,这些按钮将文件路径传递给执行对web方法的ajax调用的javascript函数。下面传递给openDoc的文件路径是JSON.stringify('fs01'Documents…)
的结果 <input type="button" id="b0" value="Open" onclick="openDoc('"''''fs01''Documents''2011''MEASEJA''1108030203 (1) 10-3-2011 Mart Cart Service Completion Survey.pdf"');">
function openDoc(filename) {
var xml = new XMLHttpRequest();
xml.open("POST", "Default.aspx", true);
xml.onreadystatechange = function () {
if (xml.readyState == 4) {
if (xml.status == 200) {
$.ajax({
type: "POST",
dataType: "json",
contentType: "application/json",
url: "Service.asmx/openDoc",
data: '{ file:' + filename + '}',
success: function () { },
error: function (xml, status, error) {
var err = eval("(" + xml.responseText + ")");
alert("Open Doc: " + xml.Message);
}
});
}
}
}
xml.send(null);
}
[WebMethod]
public byte[] openDoc(string file)
{
FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read);
byte[] buffer;
try
{
int length = (int)fs.Length;
buffer = new byte[length];
int count;
int sum = 0;
while ((count = fs.Read(buffer, sum, length - sum)) > 0)
sum += count;
}
catch (Exception ex)
{
throw (ex);
}
finally
{
fs.Close();
}
return buffer;
}
问题是,在这个过程中,文件路径中的'发生了一些事情,并从使用firebug的ajax调用接收到这样的错误:
"无法识别的转义序列。(16): {file:"'fs01'Documents'2011'MEASEJA'1108030203 (1) 10-3-2011 Mart Cart服务完成情况调查。pdf"}"
我知道在c#中,你必须把所有的'都翻倍,但这就是文件路径从按钮点击开始的方式。在某个地方,我丢失了额外的''s, c#无法将其作为文件处理。
尝试查找单个反斜杠,如果需要则将其加倍
//pseudocode
if (s.StartsWith(@"'f")) s.Prepend(@"'");
相关文章:
- Javascript:使用绝对路径设置img src
- 如何使用Javascript上传给定路径的文件
- react路由器使用简单的javascript路由器配置来处理不匹配的路径
- 表单's的action属性-如何在javascript中指定完整的应用程序路径
- 使用c#中的邮件附件javascript在客户端机器上获取服务器端导出的crystal报告路径.下面的
- javascript window.location在检查firebug时给了我一个错误的url路径
- 如何将字符串附加到对象中'路径'在Javascript中
- javascript文件中带有php(wordpress)的Src文件路径
- 为什么html src属性中的相对url是因为Javascript函数中的完整路径
- 如何使用php和javascript获取网页中显示图像的路径
- javascript onclick获取不带路径的图像名称
- Symfony2-Javascript文件中的图像路径
- 将 MVC 3 应用程序部署到 URL 文件夹已损坏 JavaScript 和内容路径
- 指向目录的Javascript路径
- Zf2布局css和javascript路径不会在子路由上解析
- 相对javascript路径不起作用
- 用id标记javascript路径
- 如何使用Xamarin android从c#调用Javascript方法时指定Javascript路径
- JavaScript:路径的自定义函数's”;d”;属性
- 相对于文件的Javascript路径