아래는 내가 지금까지 가지고있는 파일이며, 마이크로 시간까지 업로드시 파일 이름을 바꾸고 "pdf-cv"라는 제목의 폴더로 옮긴다. 그러나 내가해야 할 일은 select 입력 (추가로, 이미 존재하지 않으면 디렉토리에 해당 폴더를 만들 수 있다면 좋을 것입니다.) 어떤 도움을 많이 주시면 감사하겠습니다.선택 입력을 기반으로 특정 디렉토리 폴더로 파일을 이동하는 방법은 무엇입니까?
예 : 사용자가 "Option1"을 선택한 다음 파일을 업로드하면 해당 파일이 "Option1"이라는 디렉토리의 폴더로 이동됩니다.
셀렉트 입력 :
<select id="categories" name="categories" class="categories">
<option value="">-- Select --</option>
<option value="">option 1</option>
<option value="">option 2 </option>
<option value="">option 3 </option>
</select>
업로드 양식 :
<form action ="pdf_upload.php" id="cv_upload_form" method="post" enctype="multipart/form-data">
<div class="fileUpload text-center cv_select">
<span>Select File</span>
<input type="file" name="file" class="upload" id="pdf_input" />
</div>
<canvas class="center-block pdf_canvas" id="the-canvas" style=""><p class="preview_text">Preview</p></canvas>
<input class="cv_upload" type="submit" value="Upload">
</form>
pdf_upload.php 내용 :
<?php
$uploaddir = "pdf-cv/";
$allowed_ext = "pdf";
$max_size = "5000000";
$extension = pathinfo($_FILES['file'] ['name']);
$extension = $extension[extension];
$allowed_paths = explode(", ", $allowed_ext);
for($i = 0; $i < count($allowed_paths); $i++) {
if ($allowed_paths [$i] == "$extension") {
$ok = "1";
}
}
if ($ok == "1") {
if($_FILES['file']['size'] > $max_size)
{
print "File is too big!";
exit;
}
if(is_uploaded_file($_FILES['file']['tmp_name']))
{
$temp = explode(".", $_FILES["file"]["name"]);
$newfilename = round(microtime(true)) . '.' . end($temp);
move_uploaded_file($_FILES["file"]["tmp_name"],$uploaddir.''. $newfilename);
header("Location: new_begining_index.php#home");
}
print "Your CV has been successfully uploaded!";
} else {
print "Incorrect file extension!";
}
?>
당신이 http://php.net/manual/en/control 이것에 대한 케이스/스위치를 사용할 수 있습니다 -structures.switch.php 및 POST 배열을 기반으로합니다. 그것은 가장 간단한 방법, IMO가 될 것입니다. –
나는 슈퍼 전역을 사용하는 이론에서 이해하지만, 실제로 그것을 함께 모으는 방법을 잘 모르겠다. 간단한 예를 보여 주면 거기에서 갈 수 있습니까? –
아래 답변을 참조하십시오. 나는 또한 그 방법을 염두에 뒀다. 사실이 작업을 수행하는 꽤 많은 방법들 –