相关疑难解决方法(0)

如何在一个也是延迟承诺的函数中依次发送文件上传?

我打算使用jQuery上传一个文件数组.

这个意图包含在一个名为的函数中uploadFilesUsingAjax();

var uploadFilesPromise = uploadFilesUsingAjax();

$.when(uploadFilesPromise).done(function (uploadFilesAjaxResult) {
        // redirect to success page...
Run Code Online (Sandbox Code Playgroud)

在做其他事情之前,我需要等待所有文件成功上传.

里面uploadFilesUsingAjax(),

我这样写了我的代码

function uploadFilesUsingAjax() {
    var files = pages; // pages is a global variable which is an array of files
    var url = "/users/" + currentUser.id + "/files.json";
    var type = "POST";

    console.info('files length:' + files.length);
    if (files.length > 0) {

        var promises=[];
        for (var i = 0; i < files.length; i++) {
            var data = new FormData();
            var postData …
Run Code Online (Sandbox Code Playgroud)

javascript jquery promise sequential deferred

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

使用AJAX和CFFILE上传文件

我有一个小的表格,我想将文件上传到CF服务器。过去,我可以通过传统的操作页面提交CFFORM来完成此工作。但是我想使用AJAX上传文件。

我在处理页面上收到如下错误:cffile action =“ upload”要求表单使用enctype =“ multipart / form-data”,即使我已经这样定义了表单。

从google'ng到周围,我认为可能是因为Cffile要求filefield属性,但是由于没有表单对象传递给coldfusion。可能类似的问题。我不太喜欢这个解决方案。

无论如何,我可以解决这个错误吗?

这是我的AJAX:

<!---Script to upload file link --->     
<cfoutput>
<script>
$(function(){
//Add a new note to a link
$("##upload-file").submit(function(event){
   // prevent native form submission here
   event.preventDefault();
        $.ajax({
            type: "POST",
            data: $('##upload-file').serialize(),
            url: "actionpages/file_upload_action.cfm",
            beforeSend: function(){
                $('.loader').show();
            },
            complete: function(){
                 $('.loader').hide(3000);
            },
            success: function() {
                PopulateFileUploadDiv();
                $("##upload").val('');
                $("##response").append( "File successfully Uploaded." );
              }    
        });
        return false;           
    });
});
</script>
</cfoutput>
Run Code Online (Sandbox Code Playgroud)

我的表格:

<form method="post" name="upload-file" id="upload-file" enctype="multipart/form-data">

      <input tabindex="0" size="50" …
Run Code Online (Sandbox Code Playgroud)

ajax coldfusion jquery cffile

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

尝试使用 AJAX 上传文件时 FormData 对象始终为空

当尝试使用 AJAX 上传图像而不直接提交表单并将 FormData 对象发送到服务器时,它会返回空$_FILES数组。<input type="submit">但是,如果我使用标记数组提交表单$_FILES不为空并接收数据。

超文本标记语言

<form action="core/update.php" method="post" enctype="multipart/form-data" id="profile-photo" name="profile-photo-form">
  <input type="file" id="photo-filename" name="avatar" class="edit-show panel photo-upload">
</form>
<button class="save-button" disabled="disabled">Save</button>
Run Code Online (Sandbox Code Playgroud)

JS

$('#profile-photo').on('submit', function(e) {
    e.preventDefault();

    var form = $('#profile-photo')[0];
    var formData = new FormData(form);

    formData.append('avatar', $('#photo-filename')[0].files[0]);

    $.ajax({
      url: "core/update.php", 
      data: formData,
      type: "POST", 
      contentType: false,       
      cache: false,             
      processData: false
    });

    console.log(formData);
});

$('.save-button').on('click', function() {
    if ($('#photo-filename').val != '') {
        $('#profile-photo').submit();
    };
}
Run Code Online (Sandbox Code Playgroud)

UPD

$('#profile-photo').serialize()返回空白字符串。

更新2

它会与页面上的其他 AJAX …

html php ajax jquery

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

django rest框架3 ImageField发送ajax结果“未提交文件”。

我在Django Rest Framework中有一个API端点可以上传图像。您能发现我做错了什么吗?

#models.py

class test(models.Model):
    ...
    upload_path = 'upload/'
    image = models.ImageField(upload_to=upload_path, null=True, blank=True)
    ...
Run Code Online (Sandbox Code Playgroud)

#serializers.py

class TestSerializer(serializers.ModelSerializer):
    image = serializers.ImageField(
        max_length=None, use_url=True,
    )
    class Meta:
        model = test
        fields = ('id','name','image',...)
Run Code Online (Sandbox Code Playgroud)

#views.py

@api_view(['GET', 'POST'])
def test_list(request, site_id, block_id):

            ....

        if request.method == 'POST':
            serializer = TestSerializer(data=request.DATA)
            if serializer.is_valid():
                serializer.save()
                return Response(serializer.data, status=status.HTTP_201_CREATED)
            else:
                return Response(
                    serializer.errors, status=status.HTTP_400_BAD_REQUEST)
    else :
        return Response(status=status.HTTP_403_FORBIDDEN)
Run Code Online (Sandbox Code Playgroud)

#js

function setimage() {
    var $input = $("#js_teaser_img");
    var fd = new FormData;

    fd.append('image', $input.prop('files')[0]);

    $.ajax({
        url: …
Run Code Online (Sandbox Code Playgroud)

python django ajax

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

为什么我收到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
查看次数

通过Ajax提交表单 - FormData始终为空

我需要使用ajax在服务器上上传照片.我也设置了javascript的表单,但FormData对象总是空的!我尝试了各种方法来引用实际的表单,但仍然无法正常工作.

小提琴示例:https: //jsfiddle.net/cjngvg8a/

谢谢!

HTML:

<form id="profileImageForm" action="update.php" method="post" enctype="multipart/form-data">
<input type="text" value="hello" name="test" />
<input type="file" name="profile_pic" id="image_upload"/>
<input type="submit" value="Save"/>
</form>
Run Code Online (Sandbox Code Playgroud)

JS:

$('#profileImageForm').on('submit',(function(e) {
    e.preventDefault();     
    var formData = new FormData(this);

    console.log(formData);

    $.ajax({
        type:'POST',
        url: $(this).attr('action'),
        data:formData,
        cache:false,
        contentType: false,
        processData: false,
        success:function(data){
            console.log("success");
            console.log(data);
        }
    });
}));
Run Code Online (Sandbox Code Playgroud)

html javascript forms ajax jquery

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

415 尝试在 Jax-RS 球衣中发送 FormData() 时的状态

我正在尝试使用 jquery ajax 发送附加到 FormData 的文件。在参考了一些 mozilla 和 IBM 的文档后,我想出了以下内容。

阿贾克斯代码:

var sessionId = $.cookie("referenceId");
var myFormData = { sessionId: sessionId,
                    cipherData: cipherData,   // Encrypted xml data
                    payslip: document.getElementById('payslip').files[0]};
var formData = new FormData();
for (var key in myFormData) {
    console.log(key, myFormData[key]);
    formData.append(key, myFormData[key]);
}
$.ajax({
    url : 'api/rootpath/childpath',
    type : 'POST',
    processData: false,
    contentType: false,    // Here the contentType is set to false, so what should I put at @Consumes in java code
    data : {
        formData: formData
    }, …
Run Code Online (Sandbox Code Playgroud)

java rest jquery jax-rs jersey

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

在yii2中上传Ajax文件

我想在yii2框架中使用Ajax上传文件这是我的代码,但是在控制器"get Instance"中因为序列化数据而返回null; 我怎样才能做到这一点?

这是我的控制器:

<?php
public function actionUpdate($id)
    {
            $model = Signature::findOne([
                'user_id' => $id,
            ]);
            if ($model->load(Yii::$app->request->post())) {
                $model->file = UploadedFile::getInstance($model, 'file');
                $model->file->saveAs('uploads/signature/' . $model->user_id . '.' . $model->file->extension);
                $model->url = 'uploads/signature/' . $model->user_id . '.' . $model->file->extension;

                if ($model->save()) {
                    echo 1;
                } else {
                    echo 0;
                    echo $model->file;
                }
            } else {
                return $this->renderAjax('update', [
                    'model' => $model,
                ]);
            }
    }
?>
Run Code Online (Sandbox Code Playgroud)

这是我的脚本代码我无法在控制器中获取我的文件,它返回null

<?php $script = <<<JS

$('form#{$model->formName()}').on('beforeSubmit', function(e)
{
    var \$form = $(this);

    $.post(
    \$form.attr("action"),
    \$form.serialize(), …
Run Code Online (Sandbox Code Playgroud)

php ajax yii2

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

Jquery ajax表单提交包含文件

我有一个很长的表单,其中包含文件附件:

这是我的表单的样子:

在此输入图像描述

表单将提交给此操作:

[HttpPost]
public ActionResult AddReceivingConfirm(DTOreceiving entry,IEnumerable<HttpPostedFileBase> fileUpload)
    {

        return PartialView();
    }
Run Code Online (Sandbox Code Playgroud)

通过ajax调用,它是:

$(document).on('click', 'input[type="submit"].genericSubmit', function () {                    //generic function for ajax submit of ANY FORMS t

        if (!$("form#ValidateForm").valid()) {
                return false;
        };


        var frmData = $('.genericForm').serialize();
        var frmUrl = $('.genericForm').attr('action');
            $.ajax({
              type: 'post',
              url: frmUrl,
              data: frmData,

              success: function (e) {
                 $('#target').html(e);
             }
         });
         return false;
 });
Run Code Online (Sandbox Code Playgroud)

一切都是完美的约束,除了IEnumerable<HttpPostedFileBase>总是导致null,

我的表单的文件部分是这样完成的:

 <tr>
 <td>Attachment #1: </td>
 <td colspan="3">
     <input id="file1" type="file" name="fileUpload" />
 </td>

 </tr>

  <tr>
  <td>Attachment …
Run Code Online (Sandbox Code Playgroud)

ajax asp.net-mvc

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

Ajax post FormData 和表单

我有这个表格:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"> </script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">


<div class='col-sm-6' style="padding-left:0px;" >
    <form action="/main/" method="post" id="my_form" enctype="multipart/form-data">
      {% csrf_token %}
      <br>

      <div> <input type="text" name="description" id="id_description" /> </div>
      <div> <input type="file" name="image" id="id_image" /> </div>


      <button type="submit" disabled style="display: none" aria-hidden="true"></button>
      <input class="btn btn-success" type="submit" name="submit" value="Gem" />
    </form>
</div>
Run Code Online (Sandbox Code Playgroud)

这成功发送了表单并且它在服务器端有效。但是我无法从服务器上的表单访问图像。

<script>
    var frm = $('#my_form');
    frm.submit(function (e) {
        e.preventDefault(e);
        $.ajax({
            async: true,
            type: frm.attr('method'),
            url: frm.attr('action'),
            data: frm.serialize(),
            success: function (data) {
                console.log("success")
            },
            error: function(request, status, error) {
                console.log("error") …
Run Code Online (Sandbox Code Playgroud)

html javascript ajax jquery

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