#php #mysql
#php #mysql
Вопрос:
Не удалось создать ссылку для скачивания. Я извлекаю путь, сохраненный из базы данных, а затем пытаюсь создать ссылку для его загрузки, но ничего не происходит. Ниже приведен мой код:
$query_print="SELECT vitae_pi FROM pi WHERE username='t124'";
$query_print_run=mysqli_query($conn,$query_print);
$query_print_recordset=mysqli_fetch_assoc($query_print_run);
$query_print_path=$query_print_recordset['vitae_pi'];
echo ' this is file path '.$query_print_path;
Здесь я просто пытаюсь создать ссылку для скачивания для пользователя t124, вместо того, чтобы использовать текущего пользователя для целей тестирования?
Это код гиперссылки:
<?php echo "<a href='".$query_print_path."'>".DOWNLOAD."</a>"; ?>
Есть предложения?
Это моя функция перемещения файла:
protected function moveFile($file)
{
$filename = isset($this->newName) ? $this->newName : $file['name'];
//echo $filename;
$success = move_uploaded_file($file['tmp_name'], $this->destination . $filename);
if ($success) {
$result = $file['name'] . ' was uploaded successfully';
if (!is_null($this->newName)) {
$_SESSION['current_filename']=$this->newName;
echo $_SESSION['current_filename'];
$result .= ', and was renamed ' . $this->newName;
}
else{
$_SESSION['current_filename']=$file['name'];
echo $_SESSION['current_filename'];
}
//$result .= '.';
//echo $this->newName;
$this->messages[] = $result;
} else {
$this->messages[] = 'Could not upload ' . $file['name'];
}
}
Обновление таблицы с указанием пути к файлу:
$file_path_variable1= $destination1.$_SESSION['current_filename'];
echo '$file_path_variable1 : '.$file_path_variable1;
$query1="UPDATE proposal SET whitepaper_prop='$file_path_variable1' WHERE userName_prop='$currentuser'";
$result_query1=mysqli_query($conn,$query1);
………………..
КОД РЕШЕНИЯ:
Код решения :
$query_print="SELECT vitae_pi FROM pi WHERE username='t115'";
$query_print_run=mysqli_query($conn,$query_print);
$query_print_recordset=mysqli_fetch_assoc($query_print_run);
$query_print_path=$query_print_recordset['vitae_pi'];
$dir= 'uploaded/';
$path=opendir($dir);
<?php
}while($query_pi_array=mysqli_fetch_assoc($query_pi_result));?>
<div>
<?php while($file=readdir($path)){
if($file != "." || $file !=".."){
if($file==$query_print_path){ ?>
<a href="<?php echo $dir.$query_print_path; ?>">Proposal Whitepaper</a>
Комментарии:
1. у вас есть
define('DOWNLOAD', $query_print_path)
где-нибудь в вашем коде? Как вы ожидаетеDOWNLOAD
получить значение, когда вы извлекаете значение из своей базы$query_print_path
данных?2. Нет, я не ожидаю, что ЗАГРУЗКА будет иметь какие-либо значения, я просто использовал ее как текст гиперссылки
Ответ №1:
Что это отображает?
<?php echo "<a href='".$query_print_path."'>".DOWNLOAD."</a>"; ?>
ЗАГРУЗКА должна быть частью строки PHP, если нет, она будет рассматриваться как константа :
<?php echo "<a href='".$query_print_path."'>DOWNLOAD</a>"; ?>
Также используйте двойные кавычки для атрибутов HTML :
<?php echo "<a href="$query_print_path">DOWNLOAD</a>"; ?>
И оптимизированный способ (чтобы избежать бесполезного разбора строк) :
<?php echo '<a href="'.$query_print_path.'">DOWNLOAD</a>'; ?>
Комментарии:
1. Спасибо за ответ, я получаю этот вывод: c:xampphtdocspi_co_pi/uploaded/salsaBOY_30.pdf Это должно быть в идеале c:/xampp/htdocspi_co_pi/uploaded/salsaBOY_30.pdf Я думаю, с косыми чертами спины. Есть предложения ..?
2. Это означает, что ваш путь изначально неверен в вашей базе данных. Поэтому вам нужно искать где-то еще, где вы на самом деле помещаете эти данные в базу данных
3. Тарик Зуин: Это моя функция перемещения файла, я не вижу в этом ничего плохого, может быть, взглянуть на это ..?
4. защищенная функция MoveFile($file) { $filename = isset($this-> newName) ? $this-> Новое имя: $file[‘name’]; //echo $filename; $success = move_uploaded_file($file[‘tmp_name’], $this->назначение . $filename); if ($success) { $result = $file[‘name’] . ‘был успешно загружен’; if (!is_null($this-> newName)) { $_SESSION[‘current_filename’]=$this-> newName; echo $ _SESSION[‘current_filename’]; $result .= ‘, и был переименован ‘ . $this-> Новое имя; } else{ $_SESSION[‘current_filename’]=$file[‘name’]; echo $_SESSION[‘current_filename’]; }//$result .= ‘.’; //echo $this-> Новое имя; $this->сообщения[] = $resu<
5. ; } else { $this->messages[] = ‘Не удалось загрузить’. $file[‘name’];}}