1

画像をアップロードして解析し、後でモデルに添付しようとしていますが、アップロードするたびに正常なアップロードとして返されますが、URL には破損した画像リンクが含まれています。

例えば:

http://files.parse.com/aac0413c-eada-4602-9451-2ee5da7d1241/22eaa50b-1e61-4744-abf9-a57ba9f4123f-test.jpg

アップロードコードは次のとおりです。

getImg: ->
CameraHelper.fileUpload (file) =>
    @file = file
    forge.file.URL file, (url) =>
        @fileURL = url
        @$("#uploadImg").addClass("fadeIn").css("background-image", "url(#{url})")
        @$("#removeImg").css("display", "inline")
    , (content) ->
        error "Error finding Image"
, ->
    debug "Upload Cancelled"


    serverUrl = 'https://api.parse.com/1/files/test.jpg'
    parseFile = _.extend @file,
        type: "image/jpeg"
        name: "share.jpg"

    $.ajax
        type: "POST",
        beforeSend: (request)->
            request.setRequestHeader "X-Parse-Application-Id", 'MY-APP-ID'
            request.setRequestHeader "X-Parse-REST-API-Key", 'MY-REST-API-ID'
            request.setRequestHeader "Content-Type", "image/jpeg"
        url: serverUrl
        data: parseFile
        processData: false
        contentType: false
        success: (data) ->
            alert "File available at: " + data.url
        error: (data) ->
            obj = jQuery.parseJSON(data)
            alert obj

CameraHelper =
fileUpload: (success, err) ->
    if APP
        forge.file.getImage
            saveLocation: "file"
            source: "camera"
            height: "620px"
            width: "620px"
        , (file) ->
            debug "Successfully uploaded img"
            success?(file)
        , (content) ->
            error "Error in uploading img", content
            err?()
    else
        debug "Sorry that feature is not currently available on the mobile web."

CameraHelper 注: 私は triggerIO を使用しています。これも参照されています: https://www.parse.com/questions/uploading-files-to-parse-using-javascript-and-the-rest-apiが役に立たない

parseFile はアップロードしようとしている画像です

4

1 に答える 1

1

Parse が POST 本文で何を期待しているのか正確にはわかりませんが、マルチパート エンコーディングを使用せずに、本文全体を画像データにしたいと考えています。

つまり、次の 2 つのことを行う必要があります。

まず、ファイルをアップロードするときはfiles、 ではなく パラメーターを使用する必要がありますdatahttps://trigger.io/docs/current/api/modules/request.html#forgerequestajaxoptionsを参照してください。これは、Parse だけでなく、ファイルをアップロードするときはいつでも当てはまります。

次に、Parse はエンコードされた POST 本文を必要としないと思うfileUploadMethod: "raw"ので、パラメーターを使用して画像データをリクエストに直接ダンプします。

于 2013-05-14T09:35:20.433 に答える