首页 > 解决方案 > 用于将上传的文件名上传到 php 表单的 Js 不在一台服务器上工作但在另一台服务器上工作

问题描述

我有两个表单,它们将上传两个不同的 csv 文件并对它们执行一些查询。它在我的本地主机和测试站点中运行良好,但不能在客户端服务器中运行。表单是 php 和 html,我正在使用 js 获取上传的文件名

这是表单代码:

<form action="index.php" method="post" name="upload-form" id="upload-form">

<input type="hidden" value="" name="filelist" id="filelist" />

<div class="form-group">

    <div class="panel panel-default" id="uploading-files-wrapper">
        <div class="panel-heading">
            <h3 class="panel-title">MLS Research Data</h3>
        </div>
        <div class="panel-body">
            <span class="btn btn-success fileinput-button ">
                <i class="glyphicon glyphicon-plus"></i>
                <span>Select files...</span>
                    <input id="fileupload" class="fileupload" type="file" multiple="">
            </span>
            <br><br>
            <div id="progress" class="progress upload-progress">
                <div class="progress-bar progress-bar-warning" style="width: 0%;"></div>
            </div>
        </div>
    </div>

    <div class="panel panel-default" style="display: none;" id="uploaded-files-wrapper">
        <div class="panel-heading">
            <h3 class="panel-title">Uploaded files</h3>
        </div>
        <div class="panel-body">
            <div id="uploaded_files" class="files"></div>
        </div>
        <div class="panel-footer clearfix">
            <button type="submit" class="btn btn-success pull-right">
                <span style="padding-right: 5px">Import uploaded data</span>
                <i class="glyphicon glyphicon-alert"></i>
            </button>
        </div>
    </div>

</div>

Pyramis Actives 数据 选择文件...

上传的文件 导入上传的数据

这是用于获取文件名并将其添加到表单输入的 js

$(function () {

var $filelist = [];
var $active_filelist = [];

$('#fileupload').fileupload({
    url: 'upload.php',
    dataType: 'json',
    add: function (e, data) {
        $('#fileupload').prop('disabled', true);
        $('#fileupload.fileinput-button').addClass('disabled');
        data.submit();
    },
    done: function (e, data) {

        $.each(data.result.files, function (index, file) {
            $filelist.push(file.url);
            $('<p/>').text(file.name).appendTo('#uploaded_files');
        });

    },
    progressall: function (e, data) {
        var progress = parseInt(data.loaded / data.total * 100, 10);
        $('.upload-progress .progress-bar').css(
            'width',
            progress + '%'
        );
    }
}).prop('disabled', !$.support.fileInput)
    .parent().addClass($.support.fileInput ? undefined : 'disabled')
.bind('fileuploadstop', function (e) {

    var $_form = $('#fileupload').closest('form');
    $('#uploading-files-wrapper').slideUp('fast');
    $('#uploaded-files-wrapper').slideDown('fast');
    $('#filelist').val(JSON.stringify($filelist));

    $_form.append(
        $('<input type="hidden" name="import_data" value="1" />')
    );

});

$('#actives-form').on('submit', function () {
    var $submit_button = $('#active-files-wrapper').find('button');
    $submit_button.prop('disabled', true);
    $submit_button.html('please wait...');
});

    $('#actfileupload').fileupload({
    url: 'upload.php',
    dataType: 'json',
    add: function (e, data) {
        $('#actfileupload').prop('disabled', true);
        $('.act-btn').addClass('disabled');
        data.submit();
    },
    done: function (e, data) {

        $.each(data.result.files, function (index, file) {
            $active_filelist.push(file.url);
            $('<p/>').text(file.name).appendTo('#actives_files');
        });

    },
    progressall: function (e, data) {
        var progress = parseInt(data.loaded / data.total * 100, 10);
        $('.act-prog .progress-bar').css(
            'width',
            progress + '%'
        );
    }
}).prop('disabled', !$.support.fileInput)
    .parent().addClass($.support.fileInput ? undefined : 'disabled')
.bind('fileuploadstop', function (e) {

    var $_form = $('#actfileupload').closest('form');
    $('#actives-files-wrapper').slideUp('fast');
    $('#active-files-wrapper').slideDown('fast');
    $('#active_filelist').val(JSON.stringify($active_filelist));

    $_form.append(
        $('<input type="hidden" name="import_data" value="1" />')
    );

});

});

此代码在我的本地主机和另一个测试站点中运行,但在我的客户端服务器中运行,我尝试了 3 天的多种方法,但没有发现错误,请帮助

标签: javascriptphp

解决方案


我发现了问题,客户端的服务器对上传文件夹“文件”进行了写保护。所以json文件没有上传,也没有文件被读取。对于所有可能面临同样问题的人


推荐阅读