我正在使用JQuery Form Plugin上传文件。我能够将上传的txt文件的内容发送到与表单插件相关联的jquery,但我想发送整个文件。
现在我在我的php中回显变量$ c,这被发送到我的jquery。我能以某种方式用$ file发送整个文件吗?
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
foreach($_FILES as $file) {
$n = $file['name'];
$s = $file['size'];
$t = $file["tmp_name"];
$c= file_get_contents($t);
if (is_array($n)) {
$c = count($n);
for ($i=0; $i < $c; $i++) {
//echo "<br>uploaded: " . $n[$i] . " (" . $s[$i] . " bytes)";
}
}
else {
//echo "<br>uploaded: $n ($s bytes)";
}
//echo "<br>uploaded: $n ($s bytes)";
}
echo $c;
?>
然后在jquery表单插件的jquery中:
$(document).ready(function() {
(function() {
var bar = $('.bar');
var percent = $('.percent');
var status = $('#status');
$('#dataform').ajaxForm({
beforeSend: function() {
status.empty();
var percentVal = '0%';
bar.width(percentVal)
percent.html(percentVal);
},
uploadProgress: function(event, position, total, percentComplete) {
var percentVal = percentComplete + '%';
bar.width(percentVal)
percent.html(percentVal);
},
success: function(data, responseText, statusText, $form) {
var percentVal = '100%';
bar.width(percentVal)
percent.html(percentVal);
$.post('/submit', {name: data}, function(data) {
$('body').append(data);
});
},
complete: function(xhr) {
status.html(xhr.responseText);
}
//
});
return false;
})();
});
答案 0 :(得分:1)
你只需要记住一件事,ajax请求将读取服务器发送的输出,这就是为什么它只读取echo
ed语句,只是决定你要发送什么并将其发送为纯文本或您喜欢的任何形式,如果您想获取文件,可能会出现问题,因为服务器将尝试执行内容(如果它是php
文件,但是有一个简单的黑客,重命名扩展名该文件类似于txt
,服务器将按原样发送,这是您的决定。
答案 1 :(得分:1)
发送文件内容相当于发送文件。问题是,你为什么要做你想要的。如果你想在服务器端节省文件处理,那么我担心这只是这样做的方法。