2013-05-10 5 views
0

사용자가 슬라이더 이미지를 변경할 수있는 웹 사이트를 개발 중입니다. (전체 화면 슬라이더) 각 이미지의 크기는 2000px에서 2000px까지이며, 사용자는 HTML 양식 (10 자까지)에서 원하는만큼 많은 이미지를 업로드 할 수 있습니다.max_execution_time에 의존하지 않고 연속 이미지를 업로드 하시겠습니까?

업로드 속도가 매우 느리고 PHP의 max_execution_time을 기본 설정 인 30 초로 쉽게 넘깁니다. 또한 사용자는 향후 .rar/.zip 파일을 업로드하여 향후 100MB로 제한 할 수 있습니다.

우리는 아이디어가 거의 없었지만 더 나은 솔루션/리뷰를 요구했습니다.

  1. 우리 php.ini 파일에 액세스 할 수 있으며 사용자가 한 번에 모든 이미지를 업로드 할 수 있기 때문에 우리는 많이 높은 값 30 초를 변경할 수 있지만, 그것은 장기적으로 성능 관련 문제를 만들 수 있습니다. (옵션이 아닙니다!)
  2. 클라이언트 크기로 자바 스크립트를 사용할 수 있습니다. foreach 이미지 경로를 HTML 형식으로 지정하면 javascript에서 XMLHttpRequest를 하나씩 게시하고 응답을 기대할 수 있습니다. 응답이 true이면 javascript는 다음 이미지로 이동하여 업로드하려고 시도합니다. (이익 : 각 이미지는 PHP 자체를 시작하고 자신의 30 초 일생을 얻습니다.)
  3. 파일이 50MB를 초과하면 Javascript 솔루션이 파일 업로드에서 작동하지 않습니다. 고객은 대개 대상 지역에서 25kbps 업로드 속도로 상한을 유지하므로 30 초 내에 50MB를 업로드 할 방법이 없습니다. # 2와 마찬가지로 업로드 된 파일이 30 초마다 바이트로 저장되고 클라이언트는 나머지 바이트 또는 그와 비슷한 것을 계속해서 푸는 스크립트를 사용할 수 있습니다.

기본적으로이 작업을 어떻게 완료 하시겠습니까? PHP.ini에 의존하기를 원하지 않기 때문에 max_execution_time을 늘려야합니다.

이미지 업로드를 위해 # 2를 사용해야하고 # 3을 위해 무엇을 제안 할 수 있습니까?

답변

2

청크 업로드를 살펴보십시오.

JUpload 또는 plUpload과 같은 일종의 업 로더 스크립트를 사용해야합니다. 파일의 청크를 서버에 전송하는 크기를 지정할 수 있습니다. 예를 들어 10MB 파일이있는 경우 1MB로 청크 할 수 있으므로 10MB짜리 청크가 서버에 업로드됩니다. 연결 속도가 느린 경우 청크를 500KB로 작게 만드십시오.

관련 문제