最简单的无表单上传javascript示例
我之所以发布这篇文章,是因为很难在一个地方找到我的用例信息。最初的任务听起来很简单:“如何将通过网页上的文件类型输入标记选择的文件上载到能够解析POST请求的简单http服务器?”。不幸的是,我花了几天的时间来寻找那些在不强迫我使用表单的情况下会有所帮助的材料。我想提供我最后发现的东西,希望它能帮助其他人 有用的信息取自 干杯最简单的无表单上传javascript示例,javascript,csv,server,upload,fetch,Javascript,Csv,Server,Upload,Fetch,我之所以发布这篇文章,是因为很难在一个地方找到我的用例信息。最初的任务听起来很简单:“如何将通过网页上的文件类型输入标记选择的文件上载到能够解析POST请求的简单http服务器?”。不幸的是,我花了几天的时间来寻找那些在不强迫我使用表单的情况下会有所帮助的材料。我想提供我最后发现的东西,希望它能帮助其他人 有用的信息取自 干杯 index.html <!DOCTYPE html> <html lang="en"> <head> <meta cha
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script src="test.js"></script>
</head>
<body>
<input type="file" name="fileload">
<button id="bttn">submit</button>
</body>
</html>
pyserv.py
from http.server import HTTPServer, SimpleHTTPRequestHandler
from io import BytesIO
class TestingRequestHandler(SimpleHTTPRequestHandler):
def do_GET(self):
super().do_GET()
def do_POST(self):
print("--- headers \n{} ---".format(self.headers))
print("whole self --\n{}--".format(self))
content_length = int(self.headers['Content-Length'])
print(self.rfile,"is rfile")
body = self.rfile.read(content_length)
print("body is ",body)
self.send_response(200)
self.end_headers()
response = BytesIO()
response.write(b'This is POST request. ')
response.write(b'Received: ')
response.write(body)
self.wfile.write(response.getvalue())
httpd = HTTPServer(('localhost', 8080), TestingRequestHandler)
httpd.serve_forever()
问题是什么?答案应该是答案,而不是问题。我已经重新格式化以使问题特别清晰,并将我的答案移至第一个答案区域。你会重新评估downvote@Barmar吗?对不起,我无法撤消其他人的downvote。关于使用纯JavaScript上传文件还有其他问题。你可以在其中一个问题上添加你的答案,而不是创建一个新问题。
from http.server import HTTPServer, SimpleHTTPRequestHandler
from io import BytesIO
class TestingRequestHandler(SimpleHTTPRequestHandler):
def do_GET(self):
super().do_GET()
def do_POST(self):
print("--- headers \n{} ---".format(self.headers))
print("whole self --\n{}--".format(self))
content_length = int(self.headers['Content-Length'])
print(self.rfile,"is rfile")
body = self.rfile.read(content_length)
print("body is ",body)
self.send_response(200)
self.end_headers()
response = BytesIO()
response.write(b'This is POST request. ')
response.write(b'Received: ')
response.write(body)
self.wfile.write(response.getvalue())
httpd = HTTPServer(('localhost', 8080), TestingRequestHandler)
httpd.serve_forever()