Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][cURL] MIME
Forum PHP.pl > Forum > Przedszkole
pyro
Czy cURL ma jakąś opcję, dzięki której można przekazać nagłówek MIME wysyłanego pliku? Najlepiej by było bez użycia exec/system/passthru, jednak jeśli nie ma innej możliwości... ;/

Pozwolę se odświeżyć temat...

Próbowałem z CURLOPT_HTTPHEADER ustawiając Content-type: ale albo źle to robie albo nie działa... widze, że pomimo kilkudziesięciu odsłonięć nadal cisza... ;/ ale czekam dalej... może ktoś wpadnie na jakiś pomysł
Kicok
Zakładając, że na stronie jest taki formularz:
  1. <form action="" method="post" enctype="multipart/form-data">
  2. <input type="text" name="text1" /><!-- Wpisujemy "TEST1" -->
  3. <input type="text" name="text2" /><!-- Wpisujemy "TEST2" -->
  4.  
  5. <input type="file" name="file1" /><!-- Wpisujemy "TEST3.txt" -->
  6. <input type="file" name="file2" /><!-- Wpisujemy "TEST4.jpg" -->
  7.  
  8. <input type="submit" value="Ślij" />
  9. </form>


do serwera zostaną wysłane najprawdopodobniej takie dane:
Kod
Content-Type: multipart/form-data; boundary=----------aabbccddee
Content-Length: 12345

----------aabbccddee
Content-Disposition: form-data; name="text1"

TEST1
----------aabbccddee
Content-Disposition: form-data; name="text2"

TEST2
----------aabbccddee
Content-Disposition: form-data; name="file1"; filename="TEST3.txt"
Content-Type: text/plain

Treść pliku TEST3.txt wstawiona bezpośrednio do pliku.
Jeśli będzie kodowana przy użyciu base64_encode() to należy to uwzględnić w nagłówkach pliku
Treść nie może zawierać ciągu boundary: "----------aabbccddee"


Mogą za to być entery;]
----------aabbccddee
Content-Disposition: form-data; name="file2"; filename="TEST4.jpg"
Content-Type: image/jpeg

JPG&^$*^*#
453$%34trgreG34g$#4#%^436$##$34
;34%#$^#$ER::;:$#:$#:$#>$#>;[43;543534?>:#$%:[[?/][43/%>?34
/3

'!!,.'45/43'5/34'5'/43'5/'34//.'34
(...)
;';324@#$%@>#{%
----------aabbccddee


Problem leży pewnie w tym, że nagłówki z CURLOPT_HTTPHEADER lądują na samej górze (jeszcze przed pierwszym boundary), a ty chcesz je mieć przypisane do konkretnego pliku.
Nie mam zielonego pojęcia jak to zrobić w cURL. Jedyne co mogę doradzić, to użycie jakiegoś skanera pakietów na trasie:
SERWER_Z_CURL <---> SERWER_DO_KTÓREGO_WYSYŁANE_SĄ_PLIKI
I testowanie różnych metod, aż żądanie wysłane przez cURL będzie zbliżone do tego, co podałem na górze.

Jeśli nie wyjdzie, to pozostaje fsockopen" title="Zobacz w manualu PHP" target="_manual, które z tym zadaniem poradzi sobie na pewno ;]
pyro
ok, jest to jakieś rozwiązanie winksmiley.jpg plus, czekam na jakieś propozycje z cURL'em
cycofiasz
Dziś również szukałem odpowiedzi na to pytanie i znalazłem ją w komentarzach w manualu.
Dodajemy ";type=MIME" po ścieżce do pliku, np:

  1. '@/home/user/test.png;type=image/png'
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.