在PHP中回显整个文件并发送到jQuery



我正在使用JQuery表单插件上传文件。我可以将上传的 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表单插件中:

$(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;
    })();       
});  

你只需要记住一件事,ajax 请求将读取服务器发送的输出,这就是为什么它只读取 echo ed 语句,只需决定要发送的内容并将其作为纯文本或任何您喜欢的形式发送,如果您想获取文件,可能会出现问题,因为如果是php文件,服务器将尝试执行内容, 但是有一个简单的技巧,将文件的扩展名重命名为类似txt,服务器将按原样发送,这是您的决定。

发送文件的内容等效于发送文件。问题是,你为什么要做你所问的。如果你想在服务器端省去文件处理,那么恐怕这就是这样做的方法。

最新更新