이 글에서는 주로 앱 측에서 보낸 파일 스트림을 PHP가 수신하는 방법을 소개하는데, PHP의 컬 기반 파일 전송 작업과 관련된 기술이 필요하신 분들은 참고하시면 됩니다
이 글의 예시는 그 방법을 설명하고 있습니다. 앱 측에서 보낸 파일 스트림을 PHP가 수신합니다. 참조를 위해 모든 사람과 공유합니다. 세부 사항은 다음과 같습니다.
솔루션 아이디어:
1. 클라이언트는 매개변수와 함께 여러 장의 사진을 루프로 업로드하고 특정 규칙을 사용하여 생산 데이터 스트림(사진)을 결합합니다. 데이터는 마지막에 배치됩니다)
2 . 전송에는 데이터 스트림을 사용하고, PHP 서버는 file_get_content('php://input')를 사용하여 수신합니다.
3 전송이 완료된 후 데이터 스트림은 다음과 같이 나뉩니다. 규칙에 따라 최종 이미지 데이터가 추출되어 이미지 파일에 기록됩니다.
샘플 코드:
다음 코드는 단일 이미지와 매개변수 PHP 파일을 전송하며 여러 이미지를 루프에서 호출할 수 있습니다.
<?php /* curl_post.php */ // 设置请求的POST地址,必须是包含网址的域名,不能是相对路径 $url = 'http://www.xxx.com/post.php'; $pic_data = file_get_contents('./me.jpg'); $data = [ 'username=chafang_'.rand(100, 999), 'password='.md5('123456'), 'pic=' => $pic_data, // 这里存放图片数据 ]; // 使用 '#####' 进行分割数组 $strData = implode('#####', $data); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); //设置头文件的信息作为数据流输出 curl_setopt($curl, CURLOPT_HEADER, 0); //设置获取的信息以文件流的形式返回,而不是直接输出。 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //设置post方式提交 curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $strData); $data = curl_exec($curl); curl_close($curl); // 显示post的返回值 echo ($data);
curl에서 요청한 PHP 파일을 받아 json 형식으로 반환
<?php /* post.php */ $content = file_get_contents("php://input"); $domain = 'http://www.xxx.com/'; // 注意这里需要有写权限 $filename = 'update/'.time().'_'.rand(100000, 999999).'.jpg'; $data = explode('#####', $content, 3); $count = count($data); $result = []; // 如果文件写入成功 if (file_put_contents($filename, $data[$count - 1])) { // 删除数据中最后一个元素(就是图片) unset($data[$count - 1]); foreach ($data as $val) { // 返回参数,且参数值不能存在 '=' 号 $tmp = explode('=', $val, 2); $result[$tmp[0]] = $tmp[1]; } // 组合图片访问地址 $result['pic'] = $domain.$filename; } echo json_encode($result);
위 내용은 앱에서 보낸 파일 스트림을 수신하기 위한 PHP 메서드 샘플 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!