Pyramid: php的$_FILES['Filedata']['file_name']在Pyramid中的对应是什么?

1 投票
1 回答
846 浏览
提问于 2025-04-17 10:53

我需要知道这些信息,以便正确地从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 的食谱里有关于文件上传的 更多信息

撰写回答