通过cURL发送multipart / form-data

时间:2016-12-28 08:37:56

标签: php forms curl post

我有以下HTML表单:

<form enctype="multipart/form-data" id="upload_form" role="region" action="remoteUpload2.php?command=FileUpload&amp;type=Files&amp;currentFolder=%2F&amp;langCode=en&amp;hash=8e402b8b9927640d&amp;" method="POST" target="ckf_19">
<input name="upload" type="file">
<input value="Upload Selected File" type="submit">
<input name="cancel" value="Cancel" type="button">
</form>

当我提交它时,如果我执行print_r($ _ FILES),我会得到以下输出:

Array
(
    [upload] => Array
        (
            [name] => logo.png
            [type] => image/png
            [tmp_name] => /tmp/phpvIFI0K
            [error] => 0
            [size] => 12201
        )

)

我想弄清楚的是如何以相同的方式发送文件,仅使用PHP,将两个不同的系统连接在一起。我可以修改发送脚本,但不能修改接收脚本,所以我需要以预期的格式发送数据。

我是否有办法使用cURL将数据发布到此脚本,这将导致$ _FILES的类似输出?我有要在服务器上发送的文件,我只需要弄清楚如何将其发送到接收脚本。

1 个答案:

答案 0 :(得分:0)

我能够使用以下代码解决此问题:

## app.R ##
library(shiny)
library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody(
    fluidRow(infoBoxOutput('infoBox1'), valueBoxOutput('valueBox1'))
  )
)

server <- function(input, output) {
  output$infoBox1 <- renderInfoBox({
    x <- runif(1, 0, 10)
    color <- 'green'
    if(x < 5) color <- 'red'
    infoBox(value = x, title = 'Infobox example', color = color)
  })
  output$valueBox1 <- renderValueBox({
    x <- runif(1, 0, 10)
    color <- 'green'
    if(x < 5) color <- 'red'
    valueBox(value = x, subtitle = 'Valuebox example', color = color)
  })
}

shinyApp(ui, server)