2013-07-09 2 views
0

업로드 된 이미지를 저장하는 가장 좋은 방법은 무엇입니까? 양식이 있다고 가정하면 각 양식마다 ID가 있습니다. 사용자는 양식에 여러 이미지를 업로드 할 수 있습니다.업로드 된 이미지를 저장하는 모범 사례

WebContent 
|-- META-INF 
|-- WEB-INF 
|-- files 
| |-- images 
| | |-- Form1 
| | | `--Image1.jpg 
| | | `--Image2.jpg 
| | | `--... 
| | |-- Form2 
| | | `--Image1.jpg 
| | | `--Image2.jpg 
| | | `--... 
: 

Form1Form2 폴더입니다 : 내가 뭘 원하는 같은입니다. 사용자가 양식을 제출하는 동안 폴더가 서버에 자동으로 작성됩니다. 그렇게하는 것이 좋은 습관입니까? 감사.

+0

[업로드 된 파일을 저장하는 방법] (http://stackoverflow.com/questions/14211843/how-to-save-uploaded-file) – BalusC

+0

배포에 저장하지 마십시오. 폴더! – BalusC

답변

1

필자는이 접근법에 반드시 잘못된 점이 있다고 생각하지 않습니다. 여러 사용자가 어떻게 될지 고려 했습니까? 그들은 결국 서로의 이미지를 무시하게 될까요? 내 조언은 어딘가에 디렉터리로 또는 파일 이름에 추가로 UserID를 사용하는 것입니다.

일반적으로 AWS와 같은 것으로 클라우드에 배포하려는 경우 모든 폴더를 WebContent에 앉히지 않고 S3 기술로 가져 오면됩니다.

+0

Nice .. 실제로 각 양식은 고유 한 ID를 가지며 양식의 ID를 기반으로 다른 폴더 이름으로 구분되므로 서로 다른 이미지를 무시하지는 않습니다. ;) –

0

엄청난 양의 이미지를 기다리고 있습니까? 그렇다면 하나의 폴더에 많은 파일이있는 경우 파일 시스템이 느려지므로 이미지를 하위 폴더로 나누는 것을 고려해야합니다.

+0

이제는 모두 해당 실제 파일 시스템에 따라 달라집니다. –

+0

양식의 ID를 기준으로 분리 된 폴더에 저장해야하므로 이미지가 포함 된 폴더가 두 개 이상 있어야합니다. :) –

2

중요한 가장 좋은 방법은 응용 프로그램 자체를 사용자 데이터와 분리하는 것입니다. 따라서 WebContent 외부의 파일 시스템에 이미지를 저장하십시오. 응용 프로그램 재배포로 인해 WebContent 디렉토리가 삭제 될 수 있습니다. 또한 귀하의 의도가 아닌 사용자 콘텐츠를 삭제합니다.

다른 최상의 방법은 파일의 위치를 ​​구성 가능하게 만드는 것입니다. 당신은 그것을 하드 코딩하고 싶지 않습니다. 예를 들어 URL 자원을 사용하십시오.

파일 디렉토리의 구조가 적합합니다. 파일 아래에 다른 사용자 별 디렉토리가 필요할 수도 있습니다.

관련 문제