Articles of 上传

nginx可恢复上传upload_module和multipart / form

我目前使用上传模块( http://www.grid.net.ru/nginx/upload.en.html )从一个自定义的桌面应用程序上传到一个nginx服务器上的web服务做一个简单的多部分formsPOST,发送文件在一个部分和一个base64编码的XML文件的元数据在另一部分。 服务器接收到这个POST,把它传递给我的web服务,它读取元数据,处理文件,一切都很好。 我现在想要做的就是使用上传模块的upload_resumable指令来执行几个块的POST,以尽量减less断开连接的机会,并允许恢复。 我目前可以按照此处所述的协议执行此操作: http : //www.grid.net.ru/nginx/resumable_uploads.en.html 一个发送文件的字节范围以及一些头文件来标识几个post中的块和会话,一旦所有的部分都被上传了,nginx会组成最后一个包含文件名和path的POST,并把它传递到你的upload_pass位置在我的情况下CGI的Django应用程序)。 然而,我不清楚如何用这个方法发送一个多部分post,因为协议指示POST的主体必须是字节范围中指示的字节。 我需要最后的post也包含我上面写的XML。 我可以考虑发送XML作为正文的第一个字节和一个头,表明有多less字节属于它,但这将意味着额外的处理最后的文件,以删除该头,最终的文件可能在GB的大小范围。 任何其他的想法?

Nginx的上传模块有什么用?

我已经使Nginx上传正常使用Python(Tornado)。 我将上传的文件的path保存在数据库中。 但是,我不知道为什么上传模块必须拆分我的上传,并把它们放到10个不同的文件夹/var/www/…/uploads/0,1,2,3,4,5…9 ? 下面的评论说,这些文件被哈希,模块做什么和为什么这样做? # Store files to this directory # The directory is hashed, subdirectories 0 1 2 3 4 5 6 7 8 9 should exist upload_store /var/www/…uploads 1;

如何使用非有效的标识符作为Django表单字段名称

我不知道是否应该在这里或在serverfault这个问题,因为它涉及Django和Nginx的configuration文件。 我有一个Django视图,从包含文件字段的窗体接收POST数据。 请求通过一个带有file upload字段的nginx模块(上传模块),将它们存储到一个磁盘位置,然后附加额外的字段以及可以find每个文件的本地path以及它们的名称和其他元数据,来自POST的原始文件字段。 不幸的是,附加的字段不是非常灵活,它们的名称包含句点(。)或破折号( – )。 这一切都很好,但问题出现在python方面。 如果想使用表单来validation传入的POST数据,但我不知道如何定义一个名称中包含句点或短划线的表单。 有没有办法告诉Django的forms,该字段有一个不同的名称,variables用来存储它? 我的解决方法是不使用django表单,并以另一种方式清理传入的数据(如何?)。 或者如果有人有使用nginx中的上传模块的经验,并知道如何使用指令 upload_set_form_field $upload_field_name.name "$upload_file_name"; upload_set_form_field $upload_field_name.content_type "$upload_content_type"; upload_set_form_field $upload_field_name.path "$upload_tmp_path"; 所以$ upload_field_name.XXXX追加的字段不使用句点? (一个短划线的作品,但是这再次打破了Python的标识符,其他任何字符都会破坏configuration文件) 任何情况下的任何recomendations? 谢谢!

WordPress忽略HHVM上传最大文件大小

我有以下问题,我正在运行NGINX和HHVM(VM 3.9.1 rel): WordPress忽略我的/etc/hhvm/php.iniconfiguration文件,它有以下指令: ;php options session.save_handler = files session.save_path = /var/lib/hhvm/sessions session.gc_maxlifetime = 1440 memory_limit = 600M upload_max_filesize = 128M post_max_size = 128M max_input_time = 60 max_execution_time = 300 当我运行phpinfo()我可以看到我的上传文件大小反映在那里..但是,当我尝试通过Wordpress上传任何文件,我收到一个错误,最大上传大小为0kb。 任何帮助将不胜感激。

PHP处理大file upload的理想Web服务器?

我正在技术上指定一个file uploadAPI,将处理大量的大(250MB +)文件。 我想尽可能避免的是Web服务器在file upload过程中耗尽了整个内存,这在一定程度上是可以避免的。 另外,我不能使用Flash或Silverlight来分割文件,这可能会显着减less内存使用量。 据我所知,PHP在很大程度上取决于其主机Web服务器软件的上传性能。 考虑到这一点,Apache是​​最好的工作,或者我应该考虑Nginx或其他? 如果PHP本身是最大的瓶颈,那么考虑某种混合解决scheme是否值得呢? 如果是的话,会是什么语言?

不要通过帮助上传模块在nginx上传文件

在我的项目中有一个问题。 不要上传文件。 这是我的代码 configurationnginx server{ listen 9000; server_name localhost; root /home/path/my/project; location ~ ^/(static|media)/ { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; } location /file-upload { internal; upload_pass /upload-file/; upload_store /home/payh/my/project/media/video; upload_max_file_size 250m; upload_set_form_field $upload_field_name.name "$upload_file_name"; upload_set_form_field $upload_field_name.content_type "$upload_content_type"; upload_set_form_field $upload_field_name.path "$upload_tmp_path"; upload_pass_form_field "^csrfmiddlewaretoken$"; upload_limit_rate 2m; track_uploads upload 1m; } location = /upload/progress { […]

SWF上传过早closures上传连接(nginx 499)

我使用swfupload将file upload到nginx。 它适用于我和99%的用户。 然而,对于一些用户来说,在上传过程中它会以某种方式失败。 它打开一个连接,但在完成之前似乎closures了它–nginx在其访问日志中报告了一个499状态,该状态为NGX_HTTP_CLIENT_CLOSED_REQUEST。 我设法让这些用户之一获得更多的信息。 他们正在运行Flash 10.0.42,在Firefox 3.5.7的XP上运行。 有没有人看过像这样的东西? 任何build议修复/我可能会进一步调查? -Jonathan

不能用Nginx(反向代理+ SSL协商)和Tomcat上传大文件

组态: Nginx作为反向代理+ SSL协商 Apache Tomcat。 似乎一切正常,除了file upload。 由于某种原因file upload永远不会完成。 通过下面列出的configuration,我可以上传小文件(4K)。 上传失败的194K文件。 当我将“client_body_buffer_size”增加到256K时,我可以上传194K文件,但是一个500Kfile upload失败。 增加超过256K的“client_body_buffer_size”没有任何影响。 注意:当我直接访问Tomcat并上传500K文件时,它在几毫秒内完成。 所以,Nginxconfiguration看起来有点不对劲。 任何build议,非常感谢。 upstream tomcat_server { server 127.0.0.1:9090 fail_timeout=0; keepalive 16; } location / { root /xyz; proxy_http_version 1.1; proxy_pass http://tomcat_server; proxy_set_header Connection ""; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_buffering on; proxy_connect_timeout 75; proxy_send_timeout […]

通过file upload到PHP来curlPUT请求

我正在尝试使用HTTP PUT上传文件。 看了一下后,似乎$_FILES数组只有POST和multipart/form-data 。 而使用PUT时,我需要手动读取php://input来获取数据。 两种方法都不起作用。 我尝试了以下选项,并希望您可能有任何提示: curl –upload avatar.jpg http://api.test.com/user/dsadasdsa curl -X PUT -F "filedata=@avatar.jpg" http://api.test.com/user/dsadasdsa 我的PHP文件试图打印这个,但返回一个空string: echo file_get_contents("php://input"); 我开始认为这可能是一个缺lessPUT DELETE支持的Nginx问题,并且安装了nginx-extras以及将以下内容添加到了我的nginxconfiguration中,但是这不起作用。 root /var/www/; dav_methods PUT DELETE MKCOL COPY MOVE; create_full_put_path on; dav_access group:rw all:r;

PHP权限错误 – 我需要执行权限?

我已经写了一个PHP脚本file upload和testing我给我的上传目录777权限。 脚本工作正常。 现在我想删除执行权限的显而易见的原因,但一旦我这样做,我得到以下错误: move_uploaded_file([filepath])[function.move-uploaded-file]:未能打开stream:权限被拒绝 只要将权限从777降低到776,就会在我尝试上传文件时出现此错误。 我不明白为什么执行权限应该与这个有什么关系 – 有人可以摆脱一些光? 谢谢!