2011-12-13 2 views
0

Google 검색 중이 날과 하루를 시작해야하는 위치는 어디 까지나 도움이되지 않았습니다.사용자 표시 이전 업로드 선택 :

내 양식 필드에 데이터를 입력하고 파일의 번호를 첨부 할 수 있습니다 로그인 한 사용자 제출 양식에 일하고 있습니다. 이 파일은 여러 제출물에서 사용자가 사용할 수 있어야 내 데이터베이스가 중복 파일로 인해 막히지 않으며 파일을 여러 번 다시 업로드하지 않아도됩니다. 파일은 주로 PDF 및 워드 문서가됩니다.

내 질문은 내 사용자가 현재 제출 이전에 제출 한 파일을 선택하고 "연결"또는 여러 장의 사진과 함께 해당 파일을 연관시키기에 가장 우아한 해결책은 무엇입니까? 이전에 업로드 한 내용을 보여주는 드롭 다운 상자가 가장 좋으며 동의하면 모든 코드 조각이 도움이 될 것입니다.

문서 파일을 자체 표에 얼룩으로 저장하기로 결정했습니다. 나는 PHP와 MySQL을 리눅스에서 godaddy로 돌리고있다.

사전에 코드 샘플을 찾는 위치에 대한 조언을 주셔서 감사합니다. 내가 찾고있는 것을 찾을 수 없었습니다. 여기서 자바 스크립트가 필요합니까?

+0

파일을 첨부 할 것인지 선택하는 확인란과 함께 파일 목록을 보여줍니다. –

+0

사용자가 어떤 문서를 선택해야하는지 어떻게 알 수 있습니까? 사용자가 하나를 고를 수있는 형식으로 "문서"를 표시하려고하면 "여기에 이미 존재하는 것을 제외하고는이 파일을 업로드 할 것"이라는 것이 절대적인 악몽처럼 들립니다. 즉, 10 장의 사진이있는 경우 그 중 하나이지만 Word 문서 나 PDF 또는 무엇인가는 브라우저에 표시 할 수있는 절대적인 가치가 있으며 사용자가 자신의 파일이 동일한 지 알아내는 데 도움이되는 도구가 없습니다. . 이게 갈 길이야? – sarnold

+0

우리는 코드 샘플 인 @Dev Newb에 대한 검색 프록시가 아닙니다. –

답변

0

파일 업로드를 처리하는 더 좋은 방법은 단순히 데이터베이스 (고유 발생한다) 파일 이름을 저장하고있는 디렉토리에 실제 파일을 저장하는 것입니다. 그렇게하면 BLOB에 저장하는이 문제가 발생하지 않습니다. 이 방법으로 그렇게하는 이유가 있습니까? 이제

, 당신은 출력 데이터베이스에 저장된 파일 이름의 목록이 포함 된 SELECT 폼 요소는 사용자가 단순히 하나를 선택할 수 있으며, 당신이해야 할 모든 새 행에 파일 이름이 저장됩니다. 그런 다음 해당 파일 이름을 가리키는 모든 행은 업로드 할 필요없이 동일한 파일을 가리 킵니다.

당신은 파일 업로드 또는이 경우 "첨부 파일"배수를 허용하려면

는, 당신은 데이터베이스에 일대 다 관계를 생성해야 할 것입니다. 각 제출 행에는 해당 파일을 가리키는 다른 테이블의 많은 행이 있으며, 모두 업로드 된 해당 파일을 참조합니다. 그러한 제출에는 0 개, 1 개, 2 개 또는 그 이상의 파일이 첨부 될 수 있습니다. 그들이 이미 존재하는 파일을 선택한다면 위와 같이 사용자 이름을 복사하십시오. 새 파일 인 경우 해당 파일을 업로드하고 이름을 데이터베이스에 추가해야합니다.

자바 스크립트가 필요하지 않지만 양식에 상호 작용 기능을 추가하는 것이 좋습니다. 사용자가 "새 파일 추가"라고 말하기를 허용하고 새 파일 업로드 양식 요소를 표시하도록하십시오.

+0

굉장한 조언. 고마워요 톤, 나는 blob 대 디렉토리 스토리지를 읽고 그냥 하나를 골라야 만한다고 생각했습니다. 양측에 많은 논쟁이 있습니다. 당신은 항상 디렉토리 스토리지를 원하십니까? 아니면 제가 여기서하려고하는 것에 매우 적용 가능하다고 생각합니까? –

+0

나는 기본적으로 데이터베이스에 텍스트가 아닌 다른 것을 저장하는 것에 반대하고 있으며, 매우 드문 경우에만 텍스트에서 벗어난다. 필자는 어느 프로젝트에도 참여한 적이 없었으며 한 번 테스트 해 보았습니다. 실제로 문제가있었습니다. 이 경우 파일을 데이터베이스에 저장하면 파일을 저장하기위한 전체 테이블을 새로 작성해야하며 IMO를 복잡하게 만듭니다. –

+0

좋은 조언. 다른 참조 테이블을 추가하는 것이 큰 일이 아니라고 생각하고 다시 돌아가서 내 접근법을 재 설계하는 것이 싫지만 그러나 나는 너무 멀기 전에 그것을 할 시간이라고 생각합니다. 의견을 보내 주셔서 감사합니다. –

0

으로 시작하여 a form으로 시작하십시오. 해당 사용자와 관련된 파일 목록과 함께 select을 추가하십시오. 파일 업로드를 허용하는 양식 요소를 추가하십시오. 다른 모든 것들을 평범한 것으로 생각하십시오.

페이지 뷰에서 select에 파일 이름을 채우고이 파일의 행 ID를 <option value="file_id_xxx">...에 넣습니다.

서버 스크립트에서 파일이 업로드되었는지 검색합니다. 그렇다면 파일 저장 프로세스를 완료하고 파일 참조를 제출에 대한 연관 파일로 설정하십시오. 그렇지 않은 경우 파일이 드롭 다운에서 선택되었는지 확인하고, 그렇다면 select의 참조를 이전 업로드 파일과 함께 제출하여 저장하십시오.

자바는 select 또는 파일 업로드 input을 사용 중지하는 데 도움이 될 수 있습니다. 하지만 꼭 필요한 것은 아닙니다.

+0

죄송합니다. 전체 코드를 찾지 못했습니다. 나를 끌어 들이기위한 몇 가지 조언. U 사람들이 나를 시작하기 위해 필요한 것을 제공해주었습니다. 그리고 몇 분 만에? 이 사이트는 엉덩이를 걷어차! –

관련 문제