【问题标题】:Titanium Appcelerator image upload issue When call service without imageTitanium Appcelerator图像上传问题当调用没有图像的服务时
【发布时间】:2015-06-30 11:49:43
【问题描述】:

我已经准备了一个带有图片上传的应用程序。它发送一些文本和图像。

当我添加图像和内容(文本)时,它工作正常。不幸的是,当我在没有图像的情况下调用服务时它不起作用,请参见下面的代码,

var params = {
        file :$.selectedImageVw.image,   //if file is not selected it will send as null
        UserId : Ti.App.userID,
        postContent : $.postMessage.value
    };
var xhr = Titanium.Network.createHTTPClient();
    xhr.onreadystatechange = function() {
        if (this.readyState == 4) {
            progressVw.hide();

            // callback("Success");
            // alert(this.responseData);
            progressVw.hide();
            xhr = null;
        }
    };

    xhr.setRequestHeader('Content-Type', 'multipart/form-data');
    xhr.setRequestHeader('enctype', 'multipart/form-data');
    xhr.setRequestHeader('Content-length', params.length);
    xhr.open("POST", "uploadUrl");
    xhr.send(params);

我希望有人可以帮助我。 提前致谢!!

【问题讨论】:

    标签: android appcelerator-mobile image-upload titanium-android


    【解决方案1】:

    尝试使用http://requestb.in/ 之类的服务来检查客户端发出的请求是问题还是您使用的后端。

    【讨论】:

    • 嗨@FokkeZandbergan,感谢您的回复,我已经使用 Postman Rest Client(Google API)进行了测试。但是使用相同的参数并且工作良好。仅使用移动设备完成后无法正常工作。
    • 如果我理解正确,您已经使用不同的客户端对其进行了测试。但我建议您使用 requestb.in 在不同的服务器上测试 Titanium 客户端。这样你就可以准确地看到请求是如何进来的,例如将其与在同一 requestb.in URL 上使用 Postman Rest Client 进行比较。
    • @FokkeZandbergan 我跟踪了后端开发人员的错误,他们返回了我从前端发送的内容。当我发送空图像时,他们什么也没收到,这意味着像 userId 这样的附加参数也没有收到。我真的不知道如何解决这个问题。 ):
    【解决方案2】:

    @FokkeZandbergan 感谢您的回复, 通过非常简单的修改即可解决此问题'

    xhr.setRequestHeader('Content-Type', 'multipart/form-data');

    改为

    xhr.setRequestHeader('Content-Type', "application/x-www-form-urlencoded");

    现在它可以同时使用 imagswithout images

    它可能对某些人有所帮助。 :)

    【讨论】:

    • 好。也不是params.length 永远是undefined 的对象。您可能也想删除它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    • 1970-01-01
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多