Pyramid: php的$_FILES['Filedata']['file_name']在Pyramid中的对应是什么?
我需要知道这些信息,以便正确地从POST字典中获取文件数据。
我想在我的项目中使用Agile Uploader(在上传到服务器之前在客户端调整图像大小)。它提供了一个process.php文件,作为处理服务器上图像的示例。在这个文件中:
$tmp_name = $_FILES["Filedata"]["file_name"]; // where "tmp_name" is file name
由于Pyramid没有FILES
字典,我想我得在POST
中找到图像。但是当我尝试上传图像时,POST
是空的……
那么这个图像到底发送到哪里了?我该如何在服务器端找到它呢?
HTML(大部分HTML代码来自他们的演示):
<form action="/test" method="post" id="singularDemo" enctype="multipart/form-data">
<div id="single"></div>
</form>
<a href="#" onClick="document.getElementById('agileUploaderSWF').submit();">Submit</a>
<script type="text/javascript">
$('#single').agileUploaderSingle({
submitRedirect:'',
formId:'singularDemo',
progressBarColor:'#3b5998',
flashVars:{
firebug:true,
form_action:'/test'
}
});
</script>
Python(Pyramid代码),只是为了测试 - 简单的视图:
def test(request):
if request.method == 'POST':
pass
return {}
谢谢!
1 个回答
4
因为 $_FILES
是一个全局变量,里面存放的是通过 POST
请求提交的文件,所以你可以用 request.POST
来访问这些文件:
# access the filename
filename = request.POST['Filedata'].filename
# access the actual file
input_file = request.POST['Filedata'].file
这和 PHP 的 $_FILES
变量是完全一样的,所以如果你发现它不工作,那就说明可能还有其他问题。
Pyramid 的食谱里有关于文件上传的 更多信息。