我已经改变了所有的php.ini中的参数,我知道:
upload_max_filesize,post_max_size.
为什么我仍然看到2MB?
我在Windows 7主机上的Ubuntu VirtualBox上使用Zend Server CE.
我想在我的Intranet页面上实现一个简单的文件上传,尽可能小的设置.
这是我的HTML部分:
<input id="sortpicture" type="file" name="sortpic" />
<button id="upload">Upload</button>
Run Code Online (Sandbox Code Playgroud)
这是我的JS jquery脚本:
$("#upload").on("click", function() {
var file_data = $("#sortpicture").prop("files")[0];
var form_data = new FormData();
form_data.append("file", file_data);
alert(form_data);
$.ajax({
url: "/uploads",
dataType: 'script',
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'post',
success: function(){
alert("works");
}
});
});
Run Code Online (Sandbox Code Playgroud)
在网站的根目录中有一个名为"uploads"的文件夹,具有"users"和"IIS_users"的更改权限.
当我选择具有文件格式的文件并按下上传按钮时,第一个警报返回"[object FormData]".第二个警报没有被调用,"uploads"文件夹也是空的!?
有人可以帮助我找出错误吗?
下一步应该是,用服务器端生成的名称重命名文件.也许有人可以给我一个解决方案.
我安装了Laravel 5.7
在文件中添加了一个表单 \resources\views\welcome.blade.php
<form method="POST" action="/foo" >
@csrf
<input type="text" name="name"/><br/>
<input type="submit" value="Add"/>
</form>
Run Code Online (Sandbox Code Playgroud)
添加到文件 \routes\web.php
Route::post('/foo', function () {
echo 1;
return;
});
Run Code Online (Sandbox Code Playgroud)
发送POST请求后:
419抱歉,您的会话已过期.请刷新并重试.
在版本5.6中没有这样的问题.
我知道这是Laravel中形式之类的已知错误.但是我在Laravel 5.2中遇到了基本身份验证的问题.
我用Laravel创建了auth;
php artisan make:auth
Run Code Online (Sandbox Code Playgroud)
现在我在我的服务器和本地代码上都有相同的代码副本.在我当地,我没有任何问题.但是在我的服务器上,当我尝试注册用户时,我得到错误说TokenMismatchException in VerifyCsrfToken.php Line 67
我的本地和服务器环境都是同步的,但我在注册时一直收到错误.有关如何解决此问题的任何帮助?
我想知道PHP和Apache的最大上传大小是多少?我可以通过网络浏览器上传超过2GB的文件吗?
将大文件(> 100M)上传到服务器时,PHP始终首先从浏览器接受整个数据POST.我们无法注入上传过程.
例如,在我的PHP代码中将token整个数据发送到服务器之前检查" " 的值是不可能的:
<form enctype="multipart/form-data" action="upload.php?token=XXXXXX" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="3000000" />
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
Run Code Online (Sandbox Code Playgroud)
所以我试着这样使用mod_rewrite:
RewriteEngine On
RewriteMap mymap prg:/tmp/map.php
RewriteCond %{QUERY_STRING} ^token=(.*)$ [NC]
RewriteRule ^/upload/fake.php$ ${mymap:%1} [L]
Run Code Online (Sandbox Code Playgroud)
map.php
#!/usr/bin/php
<?php
define("REAL_TARGET", "/upload/real.php\n");
define("FORBIDDEN", "/upload/forbidden.html\n");
$handle = fopen ("php://stdin","r");
while($token = trim(fgets($handle))) {
file_put_contents("/tmp/map.log", $token."\n", FILE_APPEND);
if (check_token($token)) {
echo REAL_TARGET;
} else {
echo FORBIDDEN;
}
}
function check_token ($token) …Run Code Online (Sandbox Code Playgroud) 我检查过的事情:
停用所有插件,问题仍然相同.
如果有人有类似的问题,我愿意接受建议.谢谢.
更新从wp-admin/includes/ajax-action.php,我删除了以下部分:
if ( isset( $_REQUEST['post_id'] ) ) {
$post_id = $_REQUEST['post_id'];
if ( ! current_user_can( 'edit_post', $post_id ) ) {
echo wp_json_encode( array(
'success' => false,
'data' => array(
'message' => __( "You don't have permission to attach files to this post." ),
'filename' => $_FILES['async-upload']['name'],
)
) );
wp_die();
}
}
Run Code Online (Sandbox Code Playgroud)
我意识到这只是一个检查点,以查看用户功能,但我不完全理解为什么删除此部分有助于解决问题.现在测试用户可以成功上传媒体(媒体上传也提前成功)并且没有权限错误,并且底部的"UPLOAD MEDIA"按钮不再灰显,因此我可以正常上传.谢谢
我没有成功尝试使用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) 我有一个客户,允许客户上传大文件以进行打印操作。该网站使用 Imagick 来处理图像,但是,当尝试设置最大宽度和高度时,它不会高于 16000。例如:
// This sets the max width to 20000px
php > Imagick::setResourceLimit(9, 20000);
php > echo $image->getResourceLimit(9);
16000
php > Imagick::setResourceLimit(9, 15000);
php > echo $image->getResourceLimit(9);
15000
Run Code Online (Sandbox Code Playgroud)
这是库的限制还是我需要配置其他内容?
php ×8
ajax ×2
file-upload ×2
javascript ×2
jquery ×2
laravel ×2
apache ×1
blob ×1
filesize ×1
http ×1
imagemagick ×1
imagick ×1
laravel-5.2 ×1
mod-rewrite ×1
mysql ×1
node.js ×1
phpmyadmin ×1
upload ×1
wordpress ×1