【问题标题】:What do i need to pass in Ajax to upload a file via SFTP (JS + PHP)我需要在 Ajax 中传递什么才能通过 SFTP(JS + PHP)上传文件
【发布时间】:2025-12-01 22:20:06
【问题描述】:

我希望用户在我的页面中插入 PDF 或图像文件。 然后我想通过 SFTP 使用 PHPSECLIB 上传该文件。 我想通过 ajax 传递文件和更多数据。

        var file = this.files[0];
        alert('You have chosen the file ' + file.name);
        var data = new FormData();                
        data.append('file', file);
        var url_string = window.location.href;
        var url = new URL(url_string);
        var id = url.searchParams.get("id");
        var url="Invoice/uploadInvoice"                
        console.log(data);  
        console.log(file);
        $.ajax({
            url: "/SPI/Invoice/uploadInvoice", // point to server-side PHP script 
            dataType: 'text',  // what to expect back from the PHP script, if anything
            cache: false,
            contentType: false,
            processData: false,
            data: {file : data , id:id},                           
            type: 'POST',
            success: function(php_script_response){
                alert(php_script_response); // display response from the PHP script, if any
            }
        });
});

我希望函数 uploadInvoice 中的 POST 有一些东西,它的输出是 NULL。

【问题讨论】:

    标签: javascript php ajax file codeigniter-3


    【解决方案1】:

    我在这里所做的是通过 elementID 获取文件并从输入中获取位置 0 处的第一个也是唯一一个文件。

            var url_string = window.location.href;
            var url = new URL(url_string);
            var id = url.searchParams.get("id");
            var url="Invoice/uploadInvoice"            
            var form_data = new FormData();
            form_data.append("id", id);
            form_data.append("nrinvoice" , document.getElementById('nrinvoice').value);
            form_data.append("file", document.getElementById('input-excel').files[0]);
            $.ajax({
                url:"<?php echo base_url('/Invoice/uploadInvoice') ?>/",
                method:"POST",
                data: form_data,
                contentType: false,
                cache: false,
                processData: false,
              ....
    

    【讨论】: