2010-06-23 6 views
1

PHP로 파일을 업로드하고이를 내 mysql 데이터베이스에 BLOB으로 저장하는 기능을 만들려고합니다.PHP MYSQL 파일을 업로드하고 얼룩으로 저장하십시오.

몇 가지 문제가있어서 도움이 필요합니다. 첫 번째 문제는 양식을 사용하지 않고 어떻게이 작업을 수행 할 수 있습니까? 현재 codeigniter 프레임 워크를 사용하고 있으며 폼에 액션을 수행하지 않으려 고합니다. javascript/ajax/jquery를 사용하여 내 값을 가져 와서 파일 변환을 바이트로 수행 한 다음 BLOB에 삽입합니다.

내가 겪고있는 주요 문제는 FF3에서 입력 파일의 경로 이름을 가져올 수 없다는 것입니다. 나는 이것이 알려진 문제이며 이것이 주위에 어떤 방법을 찾을 것 같습니다 찾을 수 없습니다.

마지막으로이 문제에 대해 잘 모르겠지만 데이터베이스에 넣기 전에 파일을 임시 디렉토리에 업로드해야합니까? 파일을 인코딩하고 삽입하고 싶지만 적절한 단계가 무엇인지 혼란스러워집니다.

당신이 갖고있는 정보 나 좋은 튜토리얼은 훌륭 할 것입니다. 감사합니다.

답변

3

전체 접근법을 다시 생각해보십시오.

파일 데이터 저장을 위해 고도로 최적화 된 데이터베이스가 있습니다. 이것을 "파일 시스템"이라고합니다. RDBMS에 BLOB 파일을 저장하려는 명확하고 체계가없는 이유가 없다면 한 걸음 물러서서 자신이하는 일에 대해 생각해야합니다.

양식 문제와 관련하여 귀하가하고 싶은 것이 확실하지 않습니다. ajax-y 파일 업로드 만하려는 것 같습니다. 그게 가능합니다. 그러나 기본 메커니즘은 일반적인 형식이어야합니다. 브라우저가 없으면 Javascript에서 파일 데이터 (또는 경로)를 가져올 수 있습니다. 이것은 "알려진 문제"가 아니며 보안 기능입니다. 백그라운드에서 개인 데이터를 찾는 당신의 하드 드라이브를 비밀리에 훔쳐 갔다면 어떻습니까?

jquery를 통해 파일 업로드를 처리하는 데 필요한 튜토리얼이 많이 있습니다. 거기에서 시작하겠습니다.

일단 파일 (및 관련된 메타 데이터)을 POST 할 수 있으면 CodeIgniter의 양식/파일 처리를 살펴보십시오. 저는 CI를 사용하지 않았으므로 많은 도움을 줄 수는 없습니다.

그러면 파일 시스템에 파일을 저장하고 데이터베이스에 상대 경로를 저장하는 것이 중요합니다. 나는 오랫동안 열심히 생각한다면 데이터베이스에 파일 데이터를 저장하는 좋은 시나리오를 생각해 낼 수 있었지만,이 대답을 입력 할 때 나는 아직 하나도 생각 해 내지 못했다.

관련 문제