apache / python:文件上传无法按预期工作

时间:2015-06-30 20:37:40

标签: python html wsgi

我正在研究apache / python2.7并尝试上传一个简单的文件。

HTML

<form enctype="multipart/form-data"  method="POST">
   <p>Upload File: <input type="file" name="file" id="InputFile"></p>
   <p><input type="submit"  name="ws_butt" value="Create Bulk" class="bulk_submit"></p>
</form>

request_body_size = int(environ.get('CONTENT_LENGTH', 0))
request_body = environ['wsgi.input'].read(request_body_size)
d = parse_qs(request_body)

如果我打印出“d”的值,我得到:

{' name': ['"file"', '"ws_butt"\r\n\r\nCreate Bulk\r\n------WebKitFormBoundaryCXKZ4XpBfD6P2BIu--\r\n'], ' filename': ['"s3essentials-jason.csv"\r\nContent-Type: text/csv\r\n\r\n"Time","Note"\r\n"0:11:47","allows multipart upload concurrently']}

我无法访问“文件”键并将文件保存到某处并阅读内容。怎么做?

即使我尝试使用FieldStorage,它也是空的

form = cgi.FieldStorage(environ=environ, fp=environ['wsgi.input'])

如何处理?我错过了一些部分吗?

1 个答案:

答案 0 :(得分:0)

看看this tutorial

所以基本上如果你正在使用Flask它已经处理了上传的文件。您需要做的就是将这些文件保存在服务器上的某个位置:

var app = angular.module('klk', ['mgcrea.ngStrap']);
app.controller('mainCtrl', function($scope, $popover){
 $scope.trackName = 'Click on the button and give us a name';
 $scope.popov = function(el){
     $popover(angular.element(el),
        {
            show: true,
            placement: 'right',
            template: 'link1.html',
            animation: 'am-flip-x'
        });
 };
$scope.link = "link1.html";
$scope.change = true;
  $scope.changeContent = function(){
    $scope.change = !$scope.change;
    if ($scope.change)
      $scope.link = "link1.html";
    else
      $scope.link = "link2.html";
}
});

我已经删除了教程示例,以便轻松查看正在发生的事情,但是,请参阅教程以了解如何保护文件名。