2016-08-02 3 views
0

CSV 파일을 업로드 할 수있는 페이지가 있습니다. PHP를 사용하여 CSV 파일의 내용을 가져 와서 MySQL 데이터베이스에 삽입합니다. 나는 잠시 동안 아무런 문제없이 이것을 해왔다. 그런 다음 오늘은 파일 업로드를 시도했지만 작동하지 않았습니다. 문제는 CSV 파일과 연결된 파일 형식이없는 것입니다. 예를 들어, 좋은 업로드에 디버그 메시지는이 같은 모습을 뱉어 : 내가 파일 형식을 발견하고 파일 크기가 비어에 디버그 메시지와 함께 문제의 파일을 업로드파일 업로드시 파일 형식이 누락되었습니다.

그러나
You uploaded a file: buylist_235.csv 
file type: application/vnd.ms-excel 
file size: 10456 

File is valid, and was successfully uploaded. Here is some more debugging info:Array (
     [csv] => Array 
      (
       [name] => buylist_235.csv 
       [type] => application/vnd.ms-excel 
       [tmp_name] => C:\xampp\tmp\php3C1E.tmp 
       [error] => 0 
       [size] => 10456 
      ) 
) 

.

You uploaded a file: buylist_235_1.csv 
file type: 
file size: 0 

Possible file upload attack! 
Here is some more debugging info:Array 
(
    [csv] => Array 
     (
      [name] => buylist_235_1.csv 
      [type] => 
      [tmp_name] => 
      [error] => 2 
      [size] => 0 
     ) 

) 

누구나 파일 유형이 비어있는 아이디어가 있습니까? Windows 탐색기에서이 파일 중 하나를 가리키면 파일 위에있는 정보 풍선이 "유형 : Microsoft Excel 쉼표로 구분 된 값 파일"이라고 말합니다. 하지만 두 번째 파일에 문제가있어 내 PHP가 튀어서 파일 형식을 인식하지 못합니다.

+0

파일의 모양은 무엇입니까? –

+0

표준 CSV 파일입니다. 그것에는 7 개의 열이 있고 그 후에 줄의 수는 변하기 쉽다. MAX_FILE_SIZE를 30KB로 설정했습니다. 이전의 모든 파일은 쉽게 그 아래있었습니다. 이 특정 파일은 약 70KB 크기로 훨씬 큽니다. 그래서 파일 자체는 좋았습니다, 패트릭이 지적한 바와 같이 나쁜 HTML 코드였습니다. – milnuts

답변

5

파일 형식이 문제가 아닙니다 (생각하지 않습니다).

두 번째 예제 블록에서 시도 된 파일 업로드 중에 error 코드 2가 반환되고 임시 저장 장치에 기록되지 않았습니다 (tmp_name이 비어 있음, size은 0 임).

You uploaded a file: buylist_235_1.csv 
file type: 
file size: 0 

Possible file upload attack! 
Here is some more debugging info:Array 
(
    [csv] => Array 
     (
      [name] => buylist_235_1.csv 
      [type] => 
      [tmp_name] => 
      [error] => 2 
      [size] => 0 
     ) 

) 

오류 코드 2는 다음과 같습니다 UPLOAD_ERR_FORM_SIZE : 업로드 된 파일은 HTML 형태로 지정한 MAX_FILE_SIZE 지시어를 초과합니다.

양식 HTML에서이 값을 크게 조정하십시오.

+1

감사합니다. 크기가 문제였습니다. 업로드를 업로드하자마자 업로드가 정상적으로 처리되었습니다. – milnuts

관련 문제