在我的Python CGI脚本中,我如何将用户在表单中输入的数据通过POST请求上传的文件保存到磁盘
In my Python CGI script, how do I save to disk a file uploaded via POST request of data entered by the user in a form?
客户端有一个简单的表单,它接受一个文本和一个文件:
<form name="add_show" id="add_show" action="" method="GET">
<label class="text-info">Show Name:</label>
<input type="text" id="show_name" name="show_name" placeholder="My Show Name" required><br><br>
<label class="text-info">Show's File (JSON):</label>
<input type="file" id="file" name="file" required><br><br>
<p><input class="btn btn-danger btn-small" name="button2" value="Add the Show!" onClick="addFullShow(this.form)"></p>
</form>
使用Javascript我将数据发送到服务器的Python CGI脚本:
function addFullShow(form) {
alert("about to send form");
var formElement = form;
formData = new FormData(formElement);
var xhr = new XMLHttpRequest();
xhr.open("POST", "myScript.cgi");
xhr.send(formData);
}
在服务器端Python CGI脚本中,我有字段存储fs = cgi.FieldStorage()
,我知道如何获得文本值,即fs['key'].value
。
如何保存上传到磁盘的文件?
我希望我说得够清楚了。谢谢!使用以下代码将文件存储到磁盘
import os, cgi
fs = cgi.FieldStorage()
fileitem = fs['userfile']
# Test if the file was uploaded
if fileitem.filename:
fn = os.path.basename(fileitem.filename)
open('/tmp/' + fn, 'wb').write(fileitem.file.read())
message = 'The file "' + fn + '" was uploaded successfully'
else:
message = 'No file was uploaded'
相关文章:
- 下载使用POST数据动态生成的文件
- 如何从HTTP上下文对象中获取Post数据
- 可以't通过Angular$resource POST数据
- 如何在IE CORS中发送POST数据(使用XDomainRequest)
- Angular js,在选择元素上,我想 POST 数据以将其保存在数据库中,然后我想使用 PUT 更新它而无需重新加载
- 追加 POST 数据 javascript
- Angular 中的 HTTP 服务将 POST 数据作为请求正文的键发送,没有值
- 从chrome扩展创建一个包含POST数据的链接
- 如何使用AJAX打印PHP POST数据?(没有jQuery)
- Javascript POST数据进入GET PHP数组
- PHP没有从$.ajax获取POST数据
- 为什么cgi-POST数据被篡改和截断
- Ajax XML的POST数据值发生更改
- POST数据没有'不包含任何表单数据
- firebug:如何在firebug控制台中发送POST数据
- IE11不发送HTTP POST数据
- 使用POST数据引用jsfiddle.net
- 保存每个POST数据的Chrome扩展
- 如何将PHP Post数据获取到jquery ajax请求中
- 如何在选择Select Box值时将参数作为POST数据传递,这将重新加载同一页面