我有一个关于nginx上传模块和文件名的问题:
2013/02/05 21:01:55 [info] 23432#0: *5 started uploading file "kvm.pdf" to "/var/www/html/0000000004" (field "file[]", content type "application/pdf"), client: 127.0.0.1, server: , request: "POST /upload/share?X-Progress-ID=0520d308f3b8c4ee5d03b20301416031 HTTP/1.1", host: "localhost", referrer: "***/upload/share?X-Progress-ID=4113dd986661cafbb8cfeede98d9dba2" 2013/02/05 21:01:55 [info] 23432#0: *5 finished uploading file "kvm.pdf" to "/var/www/html/0000000004", client: 127.0.0.1, server: , request: "POST /upload/share?X-Progress-ID=0520d308f3b8c4ee5d03b20301416031 HTTP/1.1", host: "localhost", referrer: "***/upload/share?X-Progress-ID=4113dd986661cafbb8cfeede98d9dba2"
我已经上传文件kvm.pdf,但保存为0000000004,这不是一个好主意。 可以更改为存储具有原始名称的文件吗?
upload_set_form_field $upload_field_name.name "$upload_file_name"; upload_set_form_field $upload_field_name.content_type "$upload_content_type";
这行包含在configuration中,但它不工作。
您没有正确使用上传模块。 从上传模块文档 :
该模块将请求主体分析为将上传的所有文件存储到由upload_store指令指定的目录中。 然后将文件从正文中剥离,然后将已更改的请求传递到upload_pass指令指定的位置,从而允许任意处理上传的文件。 每个文件字段正在被upload_set_form_field指令指定的一组字段replace。 然后可以从$ upload_tmp_pathvariables指定的文件中读取每个上传文件的内容,或者文件可以简单地移动到最终目的地。
上传模块负责文件数据的实际上传,然后将控制传递到另一个位置(您提供的位置),负责实际处理上传的数据。 0000000004文件是临时的 – 如果要永久存储上传的文件,则必须提供一个脚本,将该临时文件移到其最终位置。 您可以在该脚本中任意指定文件的名称。