我正在尝试将图像和表单数据一起上传到服务器。我使用FileReader API将图像转换为数据并上传到服务器。我遵循类似于 HTML5 uploader using AJAX Jquery的代码。
数据被转换为jquery,但没有任何内容被发送到服务器,也没有生成错误。
$('#formupload').on('submit', function(e){
e.preventDefault();
var hasError = false;
var file = document.getElementById('file').files[0];
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = shipOff;
function shipOff(event) {
result = new Image();
result.src = event.target.result;
var fileName = document.getElementById('file').files[0].name;
$.post('test.php', { data: result, name: fileName });
}
PHP代码
<?php
$data = $_POST['data'];
$fileName = $_POST['name'];
echo $fileName;
$fp = fopen('/uploads/'.$fileName,'w'); //Prepends timestamp to prevent overwriting
fwrite($fp, $data);
fclose($fp);
$returnData = array( "serverFile" => $fileName );
echo json_encode($returnData);
?>
这个问题是由于大图像文件还是FileReader API引起的?
contentType: "application/octet-stream"
可以帮助处理一些服务器的问题。 - Christophe Roussy