디렉토리 권한을 777로 설정 했음에도 불구하고 생성 된 이미지 파일을 서버의 디렉토리에 기록하는 PHP 스크립트를 여전히 얻을 수 없습니다. 그래서, 내가 생각했던 그 문제에 씨름하는 것보다, 왜 새로운 것을 만들어 내지는 않습니까? 실제로, 나는 더 쉬운 해결책이 있을지도 모른다라고 생각했다. 서버에서 생성 된 이미지 파일 (스트림)을 가져 와서 클라이언트를 "트릭하여"파일이 서버의 디렉토리에 존재하지 않아도되므로 결과를 직접적으로 전달할 수 있습니까? 브라우저?먼저 파일을 서버 디렉토리에 쓰지 않고 생성 된 이미지 파일을 클라이언트에 전달하십시오.
답변
확실히. 바이너리 데이터가 변수 $im
에 있다고 가정 해 보겠습니다. 그냥하십시오 :
header("Content-type: image/png"); //change to suit your needs
echo $im;
PHP는 HTML이 아닌 데이터를 완벽하게 출력 할 수 있습니다.
@Michael Prescott - 위의 Artefacto의 방법을 사용하면 완벽하게 호환되는 코드이므로 브라우저를 '속임수'하지 않습니다. . 바이너리 데이터는 MIME 유형이 image/png 인 객체이므로, png 데이터이면 radios가 작동합니다. jpeg의 경우 헤더 ("Content-type : image/jpeg")가됩니다. gif의 경우 헤더 ("Content-type : image/gif")가됩니다. – SimonDowdles
64 기수 (base64_encode
)에 데이터를 변환하고, URI로 사용 URI
이미지로 사용하는 경우 :
data:MIMETYPE;base64,STUFF
예를 들어,
data:image/png;base64,iVBORAAAA...
이미지를 표시하는 경우에만
그냥 올바른 MIME에 콘텐츠 형식을 설정하고 내용을 에코.
데이터 URI에 대한 지원은 IE 제품군에서 버그가 있습니다. – Gordon
예 가능합니다. 내용 유형 헤더를 "image/png"로 설정 한 다음 이미지 데이터 스트림을 출력하십시오.
header("Content-type: image/png");
즉석에서 이미지를 만드는 경우 파일을 쓸 필요가 없습니다. PHP 파일 맨 위에서 파일 유형을 'image/png'(또는 무엇이든)로 설정하고 텍스트 대신 그래픽을 작성하십시오.
<?php
$width = 300;
$height = 200;
$im = imagecreate($width,$height);
$gray = imagecolorallocate ($im,0xcc,0xcc,0xcc);
imagefilledrectangle($im,0,0,100,100,$grey);
header ("Content-type: image/png");
imagepng($im);
?>
- 1. Unale 런타임에 생성 된 파일을 디렉토리에 저장합니다.
- 2. 파일을 덮어 쓰지 않고 바이트를 쓰는 방법
- 3. 기존 파일을 덮어 쓰지 않고 PHP로 파일을 어떻게 복사합니까?
- 4. 기존 파일을 덮어 쓰지 않고 파이썬으로 파일을 만드는 방법
- 5. 파일 시스템에 직접 쓰지 않고 파일을 직접 구문 분석
- 6. 서버 배포 디렉토리에 war 파일을 설치하십시오.
- 7. 먼저 잠금을 해제하지 않고 파일을 잠그고 삭제하십시오.
- 8. WWW 사용 : 먼저 메모리에 파일을 모두로드하지 않고 파일을 디스크에 다운로드합니다.
- 9. 클라이언트에 .ttf 파일을 설치하십시오.
- 10. iphone의 서버 문서 디렉토리에 파일을 다운로드하려면 어떻게해야합니까?
- 11. 파일을 열지 않고 체크섬 생성
- 12. 새 디렉토리에 파일을 작성했습니다.
- 13. 디스크에 저장하지 않고 생성 된 XML 파일을 전송하십시오.
- 14. jboss 디렉토리에 파일을 작성하십시오.
- 15. 파일을 쓰지 않고 다른 사람들과 웹 프로젝트 작업을하는 방법 등
- 16. 먼저 서버에 업로드하지 않고 사용자 파일을 조작하는 방법은 무엇입니까?
- 17. .log 파일은 iPhone의 문서 디렉토리에 쓰지 않습니다.
- 18. Font.createFont 임시 디렉토리에 파일을 남깁니다.
- 19. WPF 파일을 미리 정의 된 디렉토리에 복사합니다.
- 20. www 디렉토리에 포함 된 파일을 보호하는 방법
- 21. 배치 파일을 사용하여 파일을 Photoshop 디렉토리에 복사
- 22. 파일을 여러 클라이언트에 효율적으로 배포하는 방법은 무엇입니까?
- 23. 실제 파일을 쓰지 않고 CString을 CFile로 보내는 방법이 있습니까?
- 24. 덮어 쓰지 않고 텍스트 파일을 저장하는 방법은 무엇입니까?
- 25. C 파일을 다시 쓰지 않고 텍스트 파일의 첫 줄을 지우십시오.
- 26. 그것을 덮어 쓰지 않고 바이너리 파일을 업데이트 -> C
- 27. 먼저 서버에 파일을 복사하지 않고 S3에서 파일을 zip/tar 할 수 있습니까?
- 28. 파일을 열지 않고 WPF에서 이미지 표시
- 29. 먼저 파일에 쓰지 않고 C# EmbeddedResource에서 SWF를로드하려면 어떻게해야합니까?
- 30. 파이썬은 어디에서 파일을 먼저 찾습니다?
error_reporting (E_ALL)을 추가하여 문제의 원인을 확인 했습니까? – wimvds
이전 문제가 궁금하다면 php 사용자 (www-data?)가 디렉토리에서 읽기/쓰기/실행을 필요로 할뿐만 아니라 모든 상위 디렉토리에서 실행해야합니다. (Semi 관련 질문 : http://stackoverflow.com/questions/3335588/php-include-problem/) –