Загрузить файл с определенным именем файла

Для меня, чтобы легко просмотреть нужный файл перед загрузкой, это то, что я хочу сделать. Как это сделать?

выглядеть так

Мои входные коды:
Внутри формы два входа. И, вероятно, с похожим именем файла. Кнопка «Отправить» активирует функцию «uploadnow».

 <td>UPLOAD#1: AGL_001.txt <input type="file" name="upload1" id="upload1"></td>
<td>UPLOAD#2: AGL_0001.txt <input type="file" name="upload2" id="upload2"></td>

function uploadnow(){
$allowed_upload1 = ['AGL_001.txt']; // added
$allowed_upload2 = ['AGL_0001.txt']; //added

if(isset($_FILES['upload1']['name'])){
//$errors= array();
$file_name = $_FILES['upload1']['name'];
$file_size =$_FILES['upload1']['size'];
$file_tmp =$_FILES['upload1']['tmp_name'];
$file_type=$_FILES['upload1']['type'];
$file_ext=strtolower(end(explode('.',$_FILES['upload1']['name'])));
//$img_loc = $file_name.'.'.$file_ext;if (in_array($file_name, $allowed_upload1)) {
move_uploaded_file($file_tmp,"uploads/".$file_name);
} else {
$message = "Sorry, wrong filename on UPLOAD#1";
echo "<script type='text/javascript'>alert('$message');</script>";
}
}

if(isset($_FILES['upload2']['name'])){
//$errors= array();
$file_name = $_FILES['upload2']['name'];
$file_size =$_FILES['upload2']['size'];
$file_tmp =$_FILES['upload2']['tmp_name'];
$file_type=$_FILES['upload2']['type'];
$file_ext=strtolower(end(explode('.',$_FILES['upload2']['name'])));
//$img_loc = $file_name.'.'.$file_ext;

if (in_array($file_name, $allowed_upload2)) {
move_uploaded_file($file_tmp,"uploads/".$file_name);
} else {
$message = "Sorry, wrong filename on UPLOAD#2";
echo "<script type='text/javascript'>alert('$message');</script>";
}
}
}

0

Решение

Я считаю, что вы не можете предварительно установить имя файла на стороне клиента, но вы можете ограничить принятые типы файлов с помощью accept атрибут на вашем входе (думал, что трудно предсказать все типы пантомимы .txt приходит с):

<input type="file" accept="text/plain">

или более общий

<input type="file" accept="text/*">

Хотя это не пуленепробиваемое решение, и вы можете испортить браузер.

Вы можете реализовать решение JavaScript, которое будет прослушивать входные изменения и проверять имя файла.

Чтобы сделать это на стороне сервера, просто проверьте значение $_FILES[$input_name]['name'] (или $ _FILES [$ input_name] [$ index] [‘name’] для ввода файла с multiple атрибут)

$allowed_filenames = [
'AGL_001.txt',
];

if(isset($_FILES['upload1']['name'])){
//$errors= array();
$file_name = $_FILES['upload1']['name'];
$file_size =$_FILES['upload1']['size'];
$file_tmp =$_FILES['upload1']['tmp_name'];
$file_type=$_FILES['upload1']['type'];
$file_ext=strtolower(end(explode('.',$_FILES['upload1']['name'])));
//$img_loc = $file_name.'.'.$file_ext;

if (in_array($file_name, $allowed_filenames)) {
move_uploaded_file($file_tmp,"uploads/".$file_name);
} else {
// log an error
}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]