CURL Простая загрузка файла - 417 Ошибка ожидания

У меня есть проблема с простой загрузкой файла с помощью cURL... Я делал это много раз, но в этом случае я всегда получаю сообщение "417 Expectation Failed" с сервера. Когда я пытаюсь опубликовать свой браузер, он работает на 100%, но с cURL нет.

Что моя конфигурация:

Моя простая тестовая форма, которая работает:

<form action="http://images.example.com/image_upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="userfile" size="50">
    <input type="submit" name="submit">
</form>

здесь image_upload.php:

<?php
    $uploaddir = '/var/www/images.example.com/images/';
    $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
        echo "File is valid, and was successfully uploaded.\n";
    } else {
        echo "Upload failed";
    }
?>

my cURL script (image_upload.sh) выглядит так:

#!/bin/sh

file=$1

result=$(curl -s -L -F "[email protected]$file;type=application/octet-stream;" "http://images.example.com/image_upload.php")

echo $result

и здесь заголовки сервера:

> POST /image_upload.php HTTP/1.1
> User-Agent: curl/7.18.2 (i486-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.8g zlib/1.1.4 libidn/1.8 libssh2/0.18
> Host: images.example.com
> Accept: */*
> Content-Length: 579
> Expect: 100-continue
> Content-Type: multipart/form-data; boundary=----------------------------e237975526cf
>
< HTTP/1.1 417 Expectation Failed
< Connection: close
< Content-Length: 0
< Date: Thu, 02 Feb 2012 21:29:22 GMT
< Server: lighttpd/1.4.19

Я не знаю, где ошибка, может быть, вы можете ее распознать.

Ответ 2

Это происходит, когда вы находитесь за прокси-сервером, который работает в режиме HTTP 1.1, когда клиент работает в HTTP 1.0. В командной строке curl вы можете добавить --http1.0 в аргументы для решения проблемы

Ответ 3

добавьте это в конфигурацию lighttpd:   server.reject-expect-100-with-417 = "disable"

перезапустить lighttpd. приветствия:)