답변 4개
1년 전
※ 바운더리와 컨텐츠를 직접 설정하여 보세요.
</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>
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
1년 전
</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>
시도해보세요
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
1년 전
api 도 외부에서 제공하는것일텐데 아마 답변대로 처리가 어려울것 같습니다.
근본적인 해결방법이 아니고 api 업체에서도 굳이 우회처리된 파일을 만들어주긴 힘드니까요..
이번 기회에 php7 이상으로 업데이트를 하시는게 좋을것 같습니다.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
1년 전
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개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
채택
답변대기
답변대기
답변대기
답변대기
채택
채택
답변대기
답변대기
답변대기
채택