답변 4개
12개월 전
※ 바운더리와 컨텐츠를 직접 설정하여 보세요.
</p>
<p><?php
$file_path = '/path/to/your/file.txt';
if (!file_exists($file_path)) {
die("File does not exist: $file_path");
}
$url = "<a href="https://example.com/upload";" target="_blank" rel="noopener noreferrer">https://example.com/upload";</a>
$file_content = file_get_contents($file_path);
$file_name = basename($file_path);
$boundary = uniqid();
$delimiter = '-------------' . $boundary;</p>
<p>$post_data = "--" . $delimiter . "\r\n" .
"Content-Disposition: form-data; name=\"file\"; filename=\"" . $file_name . "\"\r\n" .
"Content-Type: application/octet-stream\r\n\r\n" .
$file_content . "\r\n" .
"--" . $delimiter . "--\r\n";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: multipart/form-data; boundary=" . $delimiter,
"Content-Length: " . strlen($post_data)
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo 'CURL Error: ' . curl_error($ch);
} else {
echo 'Response: ' . $response;
}
curl_close($ch);</p>
<p>
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
12개월 전
</p>
<p> </p>
<p><?php</p>
<p> </p>
<p>// 파일 업로드를 위한 URL</p>
<p>$url = '<a href="https://example.com/upload.php';" target="_blank" rel="noopener noreferrer">https://example.com/upload.php';</a></p>
<p> </p>
<p>// 업로드할 파일의 경로</p>
<p>$filename = 'test.txt';</p>
<p> </p>
<p>// curl 세션 초기화</p>
<p>$ch = curl_init();</p>
<p> </p>
<p>// 헤더 설정</p>
<p>$headers = array(</p>
<p> 'Content-Type: multipart/form-data'</p>
<p>);</p>
<p> </p>
<p>// 옵션 설정</p>
<p>curl_setopt_array($ch, array(</p>
<p> CURLOPT_URL => $url,</p>
<p> CURLOPT_POST => true,</p>
<p> CURLOPT_POSTFIELDS => array(</p>
<p> 'file' => curl_file_create($filename)</p>
<p> ), </p>
<p> CURLOPT_HTTPHEADER => $headers</p>
<p>));</p>
<p> </p>
<p>// 요청 실행</p>
<p>$result = curl_exec($ch);</p>
<p> </p>
<p>// 오류 처리</p>
<p>if (curl_errno($ch)) {</p>
<p> echo 'Error: ' .</p>
<p>curl_error($ch);</p>
<p>} else {</p>
<p> // 업로드 성공 시 응답 처리</p>
<p> echo $result;</p>
<p>}</p>
<p> </p>
<p>// curl 세션 종료</p>
<p>curl_close($ch);</p>
<p>
시도해보세요
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
12개월 전
api 도 외부에서 제공하는것일텐데 아마 답변대로 처리가 어려울것 같습니다.
근본적인 해결방법이 아니고 api 업체에서도 굳이 우회처리된 파일을 만들어주긴 힘드니까요..
이번 기회에 php7 이상으로 업데이트를 하시는게 좋을것 같습니다.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
d
dbxo
12개월 전
답변 감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
12개월 전
php버전을 사실 올리시는게 맞습니다만..
</p>
<p><?php
// 업로드할 파일 경로
$file_path = '/path/to/your/file.txt';</p>
<p>// 업로드하려는 파일이 존재하는지 확인
if (!file_exists($file_path)) {
die("File does not exist: $file_path");
}</p>
<p>// CURL 초기화
$ch = curl_init();</p>
<p>// API URL 설정
$url = "<a href="https://example.com/upload";" target="_blank" rel="noopener noreferrer">https://example.com/upload";</a> // 파일을 업로드할 API의 URL
curl_setopt($ch, CURLOPT_URL, $url);</p>
<p>// POST 요청 설정
curl_setopt($ch, CURLOPT_POST, true);</p>
<p>// 파일 데이터 설정 (PHP 5.4에서 @를 사용)
$post_fields = [
'file' => '@' . $file_path, // 파일 경로에 '@'를 추가
'other_field' => 'example_value' // 추가 필드가 있을 경우 함께 전송
];
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);</p>
<p>// CURL 옵션 설정
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);</p>
<p>// 요청 실행
$response = curl_exec($ch);</p>
<p>// CURL 에러 체크
if (curl_errno($ch)) {
echo 'CURL Error: ' . curl_error($ch);
} else {
echo 'Response: ' . $response;
}</p>
<p>// CURL 종료
curl_close($ch);
?>
</p>
<p>
php.ini에서allow_url_fopen과allow_url_include가 활성화되어 있어야 합니다.file_uploads설정도On으로 설정되어야 합니다.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
d
dbxo
12개월 전
답변 감사합니다.
하지만 해당 방법으로는 안되더라구요 ㅠㅠ
하지만 해당 방법으로는 안되더라구요 ㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인