Laravel‘de bir formdan gelen bir dosyayı Curl kullanarak post etmek için aşağıdaki adımları izleyebilirsiniz:
- İlk olarak, gelen dosyayı sunucudaki bir geçici dizine kaydetmeniz gerekecek. Bu, Curl isteği sırasında dosyanın yolu olarak kullanılacaktır. Laravel’in sağladığı
store()
veyamove()
gibi bir yöntemle dosyayı geçici bir dizine kaydedebilirsiniz. Örneğin:
$request->file('dosya')->store('gecici');
Yukarıdaki örnekte, dosya
adlı form alanından gelen dosya gecici
adlı bir dizine kaydedilir.
- Daha sonra, Curl ile POST isteği oluşturmanız gerekecek. Curl, terminalden veya PHP’de
curl_*
işlevlerini kullanarak yapılabilir. PHP‘dekicurl_*
işlevlerini kullanarak bir Curl isteği oluşturmak için aşağıdaki gibi bir kod örneği kullanabilirsiniz:
$dosyaYolu = storage_path('app/gecici/dosya.txt'); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'http://hedef-url.com/post-endpoint'); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, [ 'dosya' => new CURLFile($dosyaYolu) ]); $response = curl_exec($curl); curl_close($curl); // İstek sonucunu kullanabilirsiniz
Yukarıdaki örnekte, $dosyaYolu
değişkeni, önceki adımda geçici dizine kaydedilen dosyanın yolunu temsil eder. Curl isteği CURLOPT_URL
ile hedef URL’yi, CURLOPT_POST
ile POST isteği yapılacağını ve CURLOPT_POSTFIELDS
ile gönderilecek alanları belirtir. Dosya, CURLFile
sınıfı kullanılarak ilgili alanın değeri olarak atanır.
- Curl isteği başarıyla gönderildikten sonra, isteğin sonucunu (
$response
) kullanabilirsiniz. İşte sonucu uygun şekilde işleyebilirsiniz.
Bu şekilde, Laravel’de bir formdan gelen dosyayı Curl ile POST etmiş olursunuz. İlgili yerleri kendi ihtiyaçlarınıza göre değiştirebilirsiniz.