底线:
我是否需要关注设置post_max_filesize>> memory_limit?
详细信息:
这个答案表明上传的文件不需要适合php的memory_limit.在PHP的文档表明,整个后应该PHP的内存限制内适应.
我发现文档令人惊讶,我希望有人可以详细说明.例如,采取以下PHP配置:
; config A
memory_limit = 50M
upload_max_filesize = 100M
post_max_filesize = 1000M
max_file_uploads = 10
Run Code Online (Sandbox Code Playgroud)
和
; config B
memory_limit = 50M
upload_max_filesize = 10M
post_max_filesize = 1000M
max_file_uploads = 100
Run Code Online (Sandbox Code Playgroud)
通过这些配置,我希望能够:
这种经历会让我说"通常memory_limit应该大于upload_max_filesize"; 相反,php 文档说:
一般来说,memory_limit应该大于
post_max_size.
如果不是,为什么会发生什么?
当我的PHP代码被执行时,我看不到所有发布的文件都在内存中的证据.在我看来,我所拥有的只是一个$ _FILES路径,这些路径只能在磁盘上找到文件.在我能够反省环境之前,php是否会在内存中保留整个帖子?我需要关注设置post_max_filesize>> memory_limit吗?
除此之外:
违反手册的规则不会导致严重损坏的服务器(w/php5.3 apache2.2 …
我没有成功尝试使用AJAX 将Blob文件(.OBJ文件类型)发送到服务器.我希望能够在不使用输入文件字段的情况下执行此操作.我正在创建一个在线头像创建者,因此要发送到服务器的Blob文件是从最初导入到我的Three.js场景中的角色生成的.我已经能够将包含String的Blob文件发送到服务器并将其保存到指定的文件夹(我的目标是使用Blob .OBJ文件).我尝试在发送POST请求之前将Blob转换为Base64,但这不起作用.我尝试发送的文件大小为3MB.
这是我的JavaScript代码,用于创建Blob文件并使用AJAX将其发送到服务器上的PHP脚本.
//Create OBJ
var exporter = new THREE.OBJExporter();
var result = exporter.parse(child);
//Generate file to send to server
var formData = new FormData();
var characterBlob = new Blob([result], {type: "octet/stream"});
var reader = new FileReader();
reader.readAsDataURL(characterBlob);
reader.onloadend = function() {
formData.append('file', reader.result);
$.ajax({
url: "ExecuteMaya.php", // Url to which the request is send
type: "POST", // Type of request to be send, called as method
data: formData, // Data sent to server, a set of …Run Code Online (Sandbox Code Playgroud)