相关疑难解决方法(0)

jQuery AJAX'multipart/form-data'不发送数据?

我不知道为什么我不能让jQuery传递上传数据,因为AJAX对象似乎配置正确,并且正在发送正确的Content-Type/MIME-Type标头.

我尝试了两种不同形式的请求 - 一种是在文字中包含FormData对象,另一种是直接传递FormData对象.

不幸的是,无论哪种方式我都无法通过,$ _FILES和$ _POST都是空数组.

我想要使​​用的理想要求如下:

在此输入图像描述

以下代码:

var files = new FormData();

$.each(context.prototype.fileData, function(i, obj) { files.append(i, obj.value.files[0]); });

var request = { action: 'upload', id: response.obj.id, data: files };

$.ajax({

    type        : 'POST',
    url         : context.controller,
    data        : request,
    processData : false,
    contentType : 'multipart/form-data',
    mimeType    : 'multipart/form-data',

    success     : function(r) {
        console.log(r);
        //if (errors != null) { } else context.close();

    },

    error       : function(r) { alert('jQuery Error'); }

});
Run Code Online (Sandbox Code Playgroud)

当我尝试导出$ _FILES和$ _POST时,唯一的响应(查看网络选项卡和控制台)只是两个空数组......

ajax jquery file-upload multipartform-data

22
推荐指数
1
解决办法
4万
查看次数

如何使用JSP/Servlet和Ajax将文件上传到服务器?

我正在创建一个JSP/Servlet Web应用程序,我想通过Ajax将文件上传到Servlet.我该怎么做呢?我正在使用jQuery.

我做到目前为止:

<form class="upload-box">
    <input type="file" id="file" name="file1" />
    <span id="upload-error" class="error" />
    <input type="submit" id="upload-button" value="upload" />
</form>
Run Code Online (Sandbox Code Playgroud)

有了这个jQuery:

$(document).on("#upload-button", "click", function() {
    $.ajax({
        type: "POST",
        url: "/Upload",
        async: true,
        data: $(".upload-box").serialize(),
        contentType: "multipart/form-data",
        processData: false,
        success: function(msg) {
            alert("File has been uploaded successfully");
        },
        error:function(msg) {
            $("#upload-error").html("Couldn't upload file");
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

但是,它似乎不发送文件内容.

ajax jquery jsp servlets file-upload

18
推荐指数
2
解决办法
6万
查看次数

如何通过ajax(没有jquery)发送multipart/form-data表单内容?

我试图发送一些表单而不重新加载页面,我试图理解引擎盖下的细节,因此不使用任何JavaScript库:

var http = createRequestObject();
function createRequestObject() {
    var objAjax;
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        objAjax=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        objAjax=new ActiveXObject("Microsoft.XMLHTTP");
    }
    return objAjax;
}

function display_progress() { ... }    

function upload_file() {
    var request = 'UploaderServlet';
    http.open('post', request);
    http.onreadystatechange = display_progress;
    http.send(null); // HERE PROBABLY THE DATA SHOULD BE SENT
}

<form enctype="multipart/form-data" id="upload_form" name="upload_form" method="POST" action="UploaderServlet" onsubmit="upload_file(); return false;" target="upload_target">
Choose a file <br />  
<input name="file" size="27" …
Run Code Online (Sandbox Code Playgroud)

javascript ajax

15
推荐指数
1
解决办法
7万
查看次数

如何使用laravel中的ajax post请求将图像插入到db中?

Laravel观点:

<form  enctype="multipart/form-data" method="post" name="imagesform" id="imagesform" >
    <input type="hidden" name="_token" value="{{ csrf_token()}}">
    <div>
        <label id="show" for="files" class="button">Upload photo</label>
        <input id="files" name="images" style="visibility:hidden;" type="file">
    </div> 
    <button type="submit"  class="save" id="saveImage" style="border-radius: 8px; padding: 5px 15px;">SAVE</button>
</form>
Run Code Online (Sandbox Code Playgroud)

这是我上传图像的代码(它发生在我的引导程序模型中).当我上传图像并单击提交按钮时,图像应该插入到数据库中,并且应该检索并显示在视图页面上.

Ajax代码:

$("#saveImage").click(function(e){
    // var formdata=new FormData($("#imagesform")[0]);
    //alert(formdata);
    $.ajaxSetup({
        headers: { 'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content') }
    });
    $.ajax({
        url: 'saveImages/{{$dataId}}',
        type: 'POST',
        data:new FormData($("#imagesform")),
        success: function (data) {
            alert(data)
        },
        cache: false,
        processData: false
    });
    return false;
});
Run Code Online (Sandbox Code Playgroud)

这是ajax代码,我试过了.但是formdata的警告显示[object FormData]和浏览器控制台显示Method not allowed exception

Laravel路线:

Route::post('saveImages/{dataId}',['as' …
Run Code Online (Sandbox Code Playgroud)

php ajax jquery twitter-bootstrap laravel-5.4

11
推荐指数
1
解决办法
1491
查看次数

10
推荐指数
1
解决办法
3万
查看次数

Restangular POST文件和数据

我正在使用AngularJS与RESTful Web服务进行交互,使用Restangular来抽象暴露的各种实体.这些实体中的一些是图像或文件,因此我需要能够使用Restangular的post动作在同一请求中发送二进制数据和文本字段.

如何使用Restangular将上传的图像或文件的数据发送到单个POST请求中的宁静Web服务?

rest file-upload angularjs restangular

8
推荐指数
1
解决办法
5671
查看次数

XHR.send(文件+参数)?

我试图找出如何在同一XMLHttpRequest中发送文件和参数.这可能吗?

显然我可以做xhr.send(file + params)或xhr.(file,params).而且我认为我不能设置两个不同的请求标头来执行此操作...

xhr.setRequestHead('X_FILENAME', file.name)
xhr.send(file);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(params);
Run Code Online (Sandbox Code Playgroud)

有没有办法发送params而不必使用GET或次要xhr请求?

javascript ajax html5 xmlhttprequest

7
推荐指数
2
解决办法
6922
查看次数

jQuery FormData POST - 用于文件上传

我正在尝试使用jQuery提交服务器端处理的完整表单.表单包含各种字段,包括文件上载选项.我正在尝试使用FormData来执行此操作,因为我不关心目前不支持它的浏览器.

我有以下(简化的)jQuery代码:

$("#create_event_form").submit(function(event) {
    event.preventDefault();

    var formData = new FormData($(this));

    $.post(
        "create_entity.php",
        { formData: formData },
        function(data) {
            var response = jQuery.parseJSON(data);
            if(response.code == "success") {
                alert("Success!");
            } else if(response.code == "failure") {
                alert(response.err);
            }
        }
    );
});
Run Code Online (Sandbox Code Playgroud)

我的服务器端如下所示:

<?php
require_once('includes/database.php');


$dbh = db_connect();

$response = array();
if($_SERVER['REQUEST_METHOD'] == "POST") {
    // do some other stuff...       

    // upload entity picture and update database
    $url = $_FILES['entity_pic']['name'];
    if($url != "") {
        if($type == "user") {
            $pic_loc = "images/profiles/";
        } else if($type …
Run Code Online (Sandbox Code Playgroud)

jquery html5 file-upload asyncfileupload

5
推荐指数
1
解决办法
2万
查看次数

为什么我收到ajax请求发送的空数据?

有一个form。它具有用于上传的字段file。我submit将此表格发送给ajax请求,post方法的服务器。

var frm = $('#contact_form');
frm.submit(function (e) {
    e.preventDefault();
    var data = new FormData()
    data.append('file', $('#id_file')[0].files[0]);
    $.ajax({
        beforeSend: function(jqXHR, settings) {
            jqXHR.setRequestHeader('X-CSRFToken', $('input[name=csrfmiddlewaretoken]').val());
        },
        type: frm.attr('method'),
        method: 'POST',
        url: '',
        data: data,
        cache: false,
        contentType: false,
        processData: false,
        success: function(data) {
            console.log(data)
        }
    });
    return false;
});
Run Code Online (Sandbox Code Playgroud)

我正在使用formdata。我看client-有数据。但是它们不会到达服务器(request.POST={})。可能是什么原因?

def post(self, request, *args, **kwargs):
    print(request.GET, request.FILES, request.POST)
    contact_form = ContactFormForm(request.POST, request.FILES)
    if contact_form.is_valid():
        contact_form = …
Run Code Online (Sandbox Code Playgroud)

javascript django ajax jquery file

5
推荐指数
0
解决办法
83
查看次数

multipart/formdata不使用jQuery.ajax发送文件数据

我有一个Django后端人员的端点,文档内容如下:

POST到/ api/1/photo-uploads /使用enctype ="multipart/form-data",文件名为"files []".

我一直在尝试使用jquery的AJAX方法使用formData发送上传的文件.我继续收到错误,表明文件未发送.当我查看有效载荷时,我看到了.

undefined
------WebKitFormBoundary9AzM2HQPcyWLAgyR
Content-Disposition: form-data; name="file"; filename="auzLyrW.jpg"
Content-Type: image/jpeg
Run Code Online (Sandbox Code Playgroud)

这并不一定意味着它没有发送,但肯定没有发布位置.我没有任何关于文件上传的验证.

    var formData = new FormData();
    formData.append('file', $('#file-upload').get(0).files[0]);
    $.ajax({
        url: '/api/1/photo-uploads/',
        type: 'POST',
        data: formData,
        cache: false,
        contentType: false,
        processData: false,
    });
Run Code Online (Sandbox Code Playgroud)

当我在console.log时formData它只显示原型方法.append.因此,除了检查有效负载之外,我无法验证文件的数据是否正在发送.我可以登录,$('#file-upload').get(0).files[0]但我只看到文件本身的详细信息.因为我在本地测试它,上传位置应该像localhost:8000 /.

后端人员的印象是我正在做的事情.当我做一个简单的表单帖子它工作正常.我已经尝试了一些插件和基本方法,并且都已经生成了400 {"message": "No photos supplied.", "success": false}

任何想法,将不胜感激.

javascript api django ajax jquery

4
推荐指数
1
解决办法
1万
查看次数