使用bootstrap文件输入通过AJAX上传文件

时间:2016-11-23 16:02:11

标签: javascript php jquery ajax file

我正在开发一个网站。我的目标是有可能将文件上传到网站并将其放入Blob中,就像我可以在我的javascript代码中使用它一样。

我的问题是在上传部分:我使用Krajee输入的bootstrap文件来上传文件。这是我的html部分,我有输入标签来上传文件:

 <label class="control-label">Select File</label>
 <form id="form_file" enctype="multipart/form-data" method="post">
 <input id="file-sign" type="file" class="file" data-show-preview="false">
 </form>

这是我的javascript代码:

var file = $("#file-sign");

file.fileinput({
    uploadUrl: 'fileUpload.php', // using Ajax
    showCaption: true,
    showUpload: true,
    uploadLabel: "Submit",
    uploadClass: "btn btn-success",
    showRemove: false,
    uploadAsync: true,
    //maxFileSize: 4096,
    maxFilesNum: 1,
    maxFileCount: 1,
    multiple: false,
    showPreview: true
});

file.on('fileuploaded', function(event, data, previewId, index) {
    console.log('File uploaded triggered');
    console.log(data);
    console.log(data.response.data);
});

file.on('fileloaded', function(event, file, previewId, index, reader) {
    console.log("fileloaded");
});

我不明白的是如何在我的javascript代码中取回文件。 我在krajee的网页上看到,当我放上uploadUrl字段时,它将是一个AJAX上传,我需要输入将考虑AJAX帐户的文件名。所以我创建了一个PHP文件(我在PHP中什么都不知道。我在网上搜索时写这个文件)。这是:

<?php

header("Content-Type: text/plain");

$nick = (isset($_FILES['file_data'])) ? $_FILES['file_data'] : NULL;

if ($nick) {
    echo $nick;
} else {
    echo "FAIL";
}

?>

我认为这不正确,因为在我的网络控制台中我有: XMLHttpRequest无法加载file:///Users/.../fileUpload.php。交叉源请求仅支持协议方案:http,数据,chrome,chrome-extension,https,chrome-extension-resource。

我想我的邮件有点令人困惑,但为了解决我的问题,我不知道如何在我的javascript代码中检索我的文件:

file.on('fileuploaded'.......

我希望有人可以帮助我:)。

0 个答案:

没有答案