我有这样的事情:
<form action="" id="fileUpload">
<input type="file" id="fileTest"/>
<input type="button" id="saveFile"/> </form>
供用户上传文件。
然后我有这个js:
$('#saveFile').click(function () {
PageMethods.ReadFile($('#fileTest').val());
});
在我的c#代码中,我这样做:
[WebMethod]
public static void ReadFile(string path)
{
try
{
// Create an instance of StreamReader to read from a file.
// The using statement also closes the StreamReader.
using (StreamReader sr = new StreamReader(path))
{
String line;
// Read and display lines from the file until the end of
// the file is reached.
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
}
catch (Exception e)
{
// Let the user know what went wrong.
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
}
但是发送到webMethod的路径不是文件的正确路径。
我只是想从文件中获取数据,然后用它来处理。
这是这样做的吗?如果是这样,我怎么能让它工作?
或者有更好的方法可以做到这一点。
感谢。
答案 0 :(得分:3)
您正尝试访问服务器上的客户端文件($('#fileTest')
)。这是不可能的。
相反,您需要将上传表单POST到Web服务器并在此处理它。
答案 1 :(得分:0)
我不确定您为什么要将本地文件路径发送到webservice,然后尝试读取文件内容。这是不可能的。网络服务器无法查看或访问您的本地文件夹。您需要上传文件,然后您可以使用webservice调用获取成功上传文件的数据。
答案 2 :(得分:0)
<form action="MyPage/MyWebMethod.aspx" method="post" enctype="multipart/form-data" >
<input type="file" id="fileTest"/>
<input type="button" id="saveFile"/>
</form>
然后在服务器上,您可以从Request.Files访问文件。或类似的东西。我不记得请求的确切成员。 ajax也不是直接上传文件。有很多以ajax方式上传文件的技巧,其中一个是使用iframe。