【问题标题】:PHP Image Upload per HTTP Request Corona SDK每个 HTTP 请求的 PHP 图像上传 Corona SDK
【发布时间】:2014-11-16 22:26:35
【问题描述】:

我正在尝试创建一个允许用户将图像上传到我的服务器的应用程序。

但它总是返回:

错误代码 500:格式错误的请求

也许你知道出了什么问题......

这里是.lua 代码:

upload:addEventListener( "tap",
function( event )
if ( isPhoto == false ) then
    media.capturePhoto( { listener = onPhoto, destination = { baseDir = system.TemporaryDirectory, filename = "capture.jpg", type = "image" } } )
else
    local params = { timeout = 30, progress = true, bodyType = "binary" }
    local headers = {}
    headers.filename = filename
    params.headers = headers
    network.upload( "http://www.m7-studios.de/(link to .php)", "POST", onNetwork, params, "capture.jpg", system.TemporaryDirectory, "image/jpg" )
    end
    return true
end )

function onPhoto( event )
if ( event.completed == true ) then
    isPhoto = true
end

我用的是.php的例子:

https://www.dropbox.com/s/yc3z9a9xgf5kkim/upload.php

【问题讨论】:

    标签: php image upload lua coronasdk


    【解决方案1】:

    我刚刚读的很快,但是如果你的请求中没有包含以下参数,你会得到这个错误: HTTP_FILENAME 内容类型 CONTENT_LENGTH

    这是写在php脚本的这一行:

    if ((isset($_SERVER["HTTP_FILENAME"])) && (isset($_SERVER["CONTENT_TYPE"])) && (isset($_SERVER["CONTENT_LENGTH"])))
    

    要将参数发送到您的 php 脚本,您需要将它们作为字符串添加到您的 params.body,可能由 & 分隔:

    params.body = "HTTP_FILENAME='filename'&CONTENT_TYPE='filetype'&CONTENT_LENGTH="..1024*1024*5
    

    虽然不完全确定,请参阅我在 cmets 中发布的链接。

    【讨论】:

    • 问题是,我无法在电晕中获取图像长度...但是我删除了 php 图像长度检查并对其进行了测试。不工作... :(
    • 对不起,我想我回答得很快。阅读here,您需要在 headers 变量中而不是在 body 变量中指定此值,即。 params.body="你的变量字符串,用 & 分隔。
    • 关于图像大小问题,请参阅此question 以及最后谈论 lua 文件系统的答案。 ps告诉我它是否有效,所以我会更新我的第一个答案。
    • 好的,有问题了。如果我使用 system.DocumentsDirectory 图片上传成功。问题是如何让这个图像出现在我的脚本中?为什么使用 TemporaryDirectory 会出现问题?
    【解决方案2】:

    解决了。错误是临时保存图像似乎有问题。

    【讨论】:

      猜你喜欢
      • 2013-11-06
      • 1970-01-01
      • 2012-03-04
      • 2016-06-12
      • 1970-01-01
      • 2017-01-06
      • 2018-01-16
      • 2020-08-25
      • 2012-05-05
      相关资源
      最近更新 更多