2012-03-30 4 views
1

사용자가 서버에서 이미지를 업로드하고 삭제할 수있는 간단한 이미지 관리 도구를 만드는 중입니다. 지금까지 아주 기본적인 것들입니다. 파일 이름에 공백이 포함 된 파일을 업로드하면 문제가 발생한다는 것을 알았습니다. 공백까지 이름의 모든 것이 업로드 된 파일 이름에 포함되지만 그 전까지는 아무것도 없습니다. 이 문제는 이미지 링크가 깨진 이미지 링크가 아니기 때문에 삭제 도구 나 가장 간단한 "링크 해제"스크립트를 사용하여 이미지를 삭제할 수 없습니다. 문제와 원인을 발견하면 지원 담당자에게 연락하여 두 가지 문제 파일을 정리했습니다. 불행히도, 직장에서 시스템 제약 때문에, 나는 FTP 액세스 권한이 없습니다.재미있는 "stuck file"문제가 있습니다.

이제 모든 문제가 해결되었다고 생각 하겠지만 아니요. 나는 뚜렷한 경고 메시지를 굵은 빨간색 글씨로이 프로토 타입 관리 도구에 추가했다. 나는 상사와 다른 몇몇 사람들에게 이메일로 도구에 대해 알리고 공백이있는 파일 이름은 작동하지 않는다고 분명히 설명했다. 그래서 .. 내 상사는 뭐하니? 그녀는 파일 이름에 공백이있는 두 개의 파일을 업로드했습니다.

그래서 내가 바보 필터를 스크립트에 추가 할 때까지 누구나이 두 파일을 어떻게 삭제할 수 있는지 제안 할 수 있습니까? 나는 채워진 디렉토리를 지우고 그것을 다시 만들려고한다. (아무 것도 이미지가 없다. 그냥 무작위로 만든다.)

이런 일들을 풀어주는 것에 대한 조언이 없다면 내 상사가 어떻게 손가락을 자르지 않고 바보 같이 행동하지 못하게 할 수 있는지에 대한 조언이 있습니까?

+0

파일을 업로드하기 전에 입력 내용의 유효성을 검사하여 왜 공백이 없는지 확인해야하는 이유는 무엇입니까? – jzworkman

+0

파일 이름을 인용하십시오. –

+0

공백을 밑줄로 변환 하시겠습니까? –

답변

2

가장 좋은 대답은 다른 모든 파일을 다른 폴더로 옮기고, 폴더를 삭제하고, 폴더를 다시 작성하는 것입니다. 그 후, 당신이 PHP에서 urlencode가 이상한 문자와 공백을 파일 이름으로 처리해야한다고 생각합니다. 다른 사람들에게 도움이되는 질문 중 하나가 Linux 또는 Windows입니까?

테스트 할 때까지 작동 할 때까지 액세스 할 수있는 드라이브에 쓰기를 시도하여 작동 할 때까지 재생할 수 있도록하십시오. 그런 다음 라이브 시스템으로 전환하십시오. 이렇게하면 테스트를 삭제하도록 지원 요청을하지 않아도됩니다.

또한 밑줄로 모든 공백을 빠른 수정으로 대체 할 수 있습니다.

1

unlink()에 공백이있는 파일을 삭제하는 동안 공백을 "\"로 이스케이프하십시오. 이것은 Linux에서만 작동합니다.