js读取文件流如何传入后台

js读取文件流如何传入后台,第1张

首先你要明白XMLHttpRequest 返回的都是啥玩意,

一般来说是文本,这个可以设置:

responseText 是文本,

responseXML是XML

你这个直接用简单的文本就行了,接受的内容就是你在后台Response.write的内容

你的修改如下:

C# 我不熟,语法可能有错,但是思路绝对正确

----------------------------------------

JS:

url: "CheckName.aspx?userName="+userName //userName就是你要传入的用户名

后台:

protected void Page_Load(object sender, EventArgs e)

{

string userName=Request.querystring("userName")

GetUserName(userName)//服务器返回GetUserName中Response.write 的值

}

请参考

法1: 无需js,直接用a标签去接你的输出流 <a href="<你的返回流的Action路径>" >下载</a>方法2:使用js,前提是你使用的是现代浏览器,支持html5特性(主要是新的XMLHTTPRequest对象,Blob) <script type="text/javascript">function download(filename) { var oReq = new XMLHttpRequest()oReq.open("GET", "<你的返回流的Action路径>", true)oReq.responseType = "blob"oReq.onload = function (oEvent) { var content = oReq.response var elink = document.createElement('a')elink.download = filenameelink.style.display = 'none' var blob = new Blob([content])elink.href = URL.createObjectURL(blob) document.body.appendChild(elink)elink.click() document.body.removeChild(elink)}oReq.send()} </script>

获取http请求报文头部信息

利用nodejs中的 http.ServerRequest中获取1):

request.method

用来标识请求类型

request.headers

其中我们关心两个字段:

content-type

包含了表单类型和边界字符串(下面会介绍)信息。

content-length

post数据的长度

关于content-type

get请求的headers中没有content-type这个字段

post 的 content-type 有两种

application/x-www-form-urlencoded

这种就是一般的文本表单用post传地数据,只要将得到的data用querystring解析下就可以了

multipart/form-data

文件表单的传输,也是本文介绍的重点

获取POST数据

前面已经说过,post数据的传输是可能分包的,因此必然是异步的。post数据的接受过程如下:

   var postData = ''

   request.addListener("data", function(postDataChunk) {  // 有新的数据包到达就执行

     postData += postDataChunk

     console.log("Received POST data chunk '"+

     postDataChunk + "'.")

   })

   request.addListener("end", function() {  // 数据传输完毕

     console.log('post data finish receiving: ' + postData )

   })

注意,对于非文件post数据,上面以字符串接收是没问题的,但其实 postDataChunk 是一个 buffer 类型数据,在遇到二进制时,这样的接受方式存在问题。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7910468.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存