Вы можете сделать это, используя функцию async
await
var getDataById = function (id) {
return new Promise(function (resolve, reject) {
con.query('SELECT * FROM station WHERE id=' + id, function (err, result, field) {
if (err) {
console.log("ERROR 3");
reject(err);
} else {
resolve(result);
}
});
});
};
(async function () {
for (var i = 0; i < map.length; ++i) {
var data = await getDataById(map[i]);
data.forEach(function (r) {
stationName.push(r.name);
});
if (stationName.length == map.length) {
console.log(stationName);
}
}
})();
Другой вариант может заключаться в том, чтобы код на стороне клиента заполнял скрытое поле формы с именем файла, которое затем будет на стороне сервера.
Ответ Бена Дума обычно такой, как я бы подошел это, однако.
Я не знаю, как это выяснить перед вызовом cffile, но может быть обходной путь.
Когда вы вызываете
, вы можете указать результат, используя result = "variable"
. Итак, вызовите загрузку с местом назначения как временный файл. Ваша результирующая переменная - это структура, которая содержит член clientFile, который является именем файла на клиентском компьютере.
Теперь вы можете использовать
, чтобы делать все, что вам нужно, с исходным именем файла.
Если у вас есть атрибут имени, определенный в элементе управления вводом, имя файла будет в Область применения ФОРМЫ. Например:
<cfif not structIsEmpty(form)>
<cfdump var="#form#">
<cfelse>
<html>
<head>
<title>Title</title>
</head>
<body>
<form method="POST" action="#cgi.SCRIPT_NAME#">
<input type="file" name="fileIn" />
<input type="Submit" name="formSubmit">
</form>
</body>
</html>
</cfif>
Вот как мы это делаем. В основном это файловое поле, и строковое поле. JavaScript получает имя файла из браузера перед отправкой формы. Очевидно, вам нужно убедиться, что имя файла на другом конце действительно присутствует (например, оно будет пустым, если у пользователя отключен JavaScript), и вам нужно будет проанализировать строку для обработки различий между платформами ( / users / bob / file.jpg
по сравнению с C: \ Documents and Settings \ bob \ file.jpg
)
<script>
function WriteClientFileName(){
$('ClientFileName').value = $('ClientFile').value;
}
</script>
<form enctype="multipart/form-data" onsubmit="WriteClientFileName();">
<input type="File" name="ClientFile" id="ClientFile">
<input type="hidden" name="ClientFileName" id="ClientFileName" value="">
<input type="submit">
</form>
Между прочим, этот метод является кросс-языковым. Он будет одинаково хорошо работать в RoR, PHP, JSP и т. Д.
Изменить: Если пользователь «использует яростный FireBug», в чем проблема? Даже если у них нет Firebug, они все равно могут переименовать файл на своей стороне и изменить ввод. Кроме того, вы подтверждаете свои данные, верно?
JavaScript получает имя файла из браузера перед отправкой формы. Очевидно, вам нужно убедиться, что имя файла на другом конце действительно присутствует (например, оно будет пустым, если у пользователя отключен JavaScript), и вам нужно будет проанализировать строку для обработки различий между платформами ( / users / bob / file.jpg
по сравнению с C: \ Documents and Settings \ bob \ file.jpg
)
<script>
function WriteClientFileName(){
$('ClientFileName').value = $('ClientFile').value;
}
</script>
<form enctype="multipart/form-data" onsubmit="WriteClientFileName();">
<input type="File" name="ClientFile" id="ClientFile">
<input type="hidden" name="ClientFileName" id="ClientFileName" value="">
<input type="submit">
</form>
Между прочим, этот метод является кросс-языковым. Он будет одинаково хорошо работать в RoR, PHP, JSP и т. Д.
Изменить: Если пользователь «использует яростный FireBug», в чем проблема? Даже если у них нет Firebug, они все равно могут переименовать файл на своей стороне и изменить ввод. Кроме того, вы подтверждаете свои данные, верно?
JavaScript получает имя файла из браузера перед отправкой формы. Очевидно, вам нужно убедиться, что имя файла на другом конце действительно присутствует (например, оно будет пустым, если у пользователя отключен JavaScript), и вам нужно будет проанализировать строку для обработки различий между платформами ( / users / bob / file.jpg
по сравнению с C: \ Documents and Settings \ bob \ file.jpg
)
<script>
function WriteClientFileName(){
$('ClientFileName').value = $('ClientFile').value;
}
</script>
<form enctype="multipart/form-data" onsubmit="WriteClientFileName();">
<input type="File" name="ClientFile" id="ClientFile">
<input type="hidden" name="ClientFileName" id="ClientFileName" value="">
<input type="submit">
</form>
Между прочим, этот метод является кросс-языковым. Он будет одинаково хорошо работать в RoR, PHP, JSP и т. Д.
Изменить: Если пользователь «использует яростный FireBug», в чем проблема? Даже если у них нет Firebug, они все равно могут переименовать файл на своей стороне и изменить ввод. Кроме того, вы подтверждаете свои данные, верно?
вам нужно убедиться, что имя файла на другом конце действительно присутствует (например, оно будет пустым, если у пользователя отключен JavaScript), и вам нужно будет проанализировать строку для обработки различий в платформах ( / users / bob / file.jpg
по сравнению с C: \ Documents and Settings \ bob \ file.jpg
)
<script>
function WriteClientFileName(){
$('ClientFileName').value = $('ClientFile').value;
}
</script>
<form enctype="multipart/form-data" onsubmit="WriteClientFileName();">
<input type="File" name="ClientFile" id="ClientFile">
<input type="hidden" name="ClientFileName" id="ClientFileName" value="">
<input type="submit">
</form>
Между прочим, этот метод является кросс-языковым. Он будет одинаково хорошо работать в RoR, PHP, JSP и т. Д.
Изменить: Если пользователь «использует яростный FireBug», в чем проблема? Даже если у них нет Firebug, они все равно могут переименовать файл на своей стороне и изменить ввод. Кроме того, вы подтверждаете свои данные, верно?
вам нужно убедиться, что имя файла на другом конце действительно присутствует (например, оно будет пустым, если у пользователя отключен JavaScript), и вам нужно будет проанализировать строку для обработки различий в платформах ( / users / bob / file.jpg
по сравнению с C: \ Documents and Settings \ bob \ file.jpg
)
<script>
function WriteClientFileName(){
$('ClientFileName').value = $('ClientFile').value;
}
</script>
<form enctype="multipart/form-data" onsubmit="WriteClientFileName();">
<input type="File" name="ClientFile" id="ClientFile">
<input type="hidden" name="ClientFileName" id="ClientFileName" value="">
<input type="submit">
</form>
Между прочим, этот метод является кросс-языковым. Он будет одинаково хорошо работать в RoR, PHP, JSP и т. Д.
Изменить: Если пользователь «использует яростный FireBug», в чем проблема? Даже если у них нет Firebug, они все равно могут переименовать файл на своей стороне и изменить ввод. Кроме того, вы подтверждаете свои данные, верно?
jpg по сравнению с C: \ Documents and Settings \ bob \ file.jpg
)
<script>
function WriteClientFileName(){
$('ClientFileName').value = $('ClientFile').value;
}
</script>
<form enctype="multipart/form-data" onsubmit="WriteClientFileName();">
<input type="File" name="ClientFile" id="ClientFile">
<input type="hidden" name="ClientFileName" id="ClientFileName" value="">
<input type="submit">
</form>
Между прочим, этот метод является кросс-языковым. Он будет одинаково хорошо работать в RoR, PHP, JSP и т. Д.
Изменить: Если пользователь «использует яростный FireBug», в чем проблема? Даже если у них нет Firebug, они все равно могут переименовать файл на своей стороне и изменить ввод. Кроме того, вы подтверждаете свои данные, верно?
jpg по сравнению с C: \ Documents and Settings \ bob \ file.jpg
)
<script>
function WriteClientFileName(){
$('ClientFileName').value = $('ClientFile').value;
}
</script>
<form enctype="multipart/form-data" onsubmit="WriteClientFileName();">
<input type="File" name="ClientFile" id="ClientFile">
<input type="hidden" name="ClientFileName" id="ClientFileName" value="">
<input type="submit">
</form>
Между прочим, этот метод является кросс-языковым. Он будет одинаково хорошо работать в RoR, PHP, JSP и т. Д.
Изменить: Если пользователь «использует яростный FireBug», в чем проблема? Даже если у них нет Firebug, они все равно могут переименовать файл на своей стороне и изменить ввод. Кроме того, вы подтверждаете свои данные, верно?
право? право?Невозможно узнать имя загруженного файла перед сохранением на сервер в ColdFuson, Railo или OpenBD. Я обычно создаю «свое» новое имя файла с помощью функции createUUID () перед сохранением файла.
WOW, я нашел отличное и простое решение! с небольшим javascript
Таким образом вы получаете временное имя файла для загрузки cffile и фактическое имя file.jpg для базы данных
<html>
<head>
<script type="text/javascript">
function PassFileName()
{
document.getElementById("fileName").value=document.getElementById("fileUp").value;
}
</script>
</head>
<body>
<form name="form1" method="post" enctype="multipart/form-data" >
File: <input type="file" name="fileUp" id="fileUp" size="20" onchange="PassFileName()" /> <br />
Title: <input type="text" name="Title" id="Title"><br />
<input type="hidden" id="fileName" size="20" name="fileName" />
<input type="submit" name="submit">
</form>
</body>
</html>