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.


