ОК. Я ищу на этом сайте С 24 августа 2011 года (не это важно) для способа отображения файлов, которые были загружены пользователем. У меня есть моя форма на стороне администратора, и все работает нормально. У меня также есть таблица, отображающая все, что пользователь заполнил в форме, которая также работает. Но я не могу просмотреть файл или его имя в таблице.
В моей таблице базы данных есть первичный идентификатор auto_increment int (11) без знака.
Вот код, который я написал:
//This gets all the other information from the form $company=$_POST['company']; $location=$_POST['location']; $pic=($_FILES['userfile']['name']); $query = "INSERT INTO user_DB VALUES ('','$company', '$location', '$userfile' )"; //target to the path of my files $target_path = "uploads/post_id/"; if(!is_dir($target_path)) mkdir($target_path); $uploadfile = $target_path . basename($_FILES['userfile']['name']); //Move the uploaded file to $taget_path (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)); В форме, которую вы заполняете, у меня есть следующее:
 <tr> <td><label for="company_name">Company Name</label></td> <td><input type="text" name="company" id="company" value="" size="38" /></td> </tr> <tr> <td><label for="location">Location</label></td> <td><input type="text" name="location" id="location" value="" /></td> </tr> <tr> <td>Upload a File:</td> <td><input name="userfile" id="userfile" type="file" /></td> </tr> 
Таблица, которая находится на передней панели, которая отображает результаты запроса, выглядит так: только файл feild.
 echo "<td>"; echo "<a href=../admin/uploads/post_id/> $row'userfile'</a>"; echo "</td>"; 
Итак, как вы можете видеть, я пытаюсь получить имя файла, а также сам файл. Если его pdf / jpg / doc я должен иметь возможность просматривать / загружать его, когда я нажимаю ссылку.
Муравьиные идеи …
Некоторые предложения о том, что вы можете изменить, чтобы это работало.
  Как выглядит ваш тег формы?  Не забудьте включить параметр enctype как enctype ниже: 
 <form type="post" action="" enctype="multipart/form-data"> ... </form> 
 $company = mysql_real_escape_string($_POST['company']); $location = mysql_real_escape_string($_POST['location']); $pic = mysql_real_escape_string($_FILES['userfile']['name']); 
Вышеупомянутые строки являются первым шагом, помогающим предотвратить ваши запросы от атак SQL-инъекций.
  $userfile не существует, поскольку вы фактически назначили имя файла $pic поэтому ваш запрос должен выглядеть так: 
 $query = "INSERT INTO user_DB VALUES ('','$company', '$location', '$pic')"; 
Теперь, чтобы связать файл с вашей выходной таблицей:
 echo "<td>"; echo "<a href=" . $target_path . basename($row['userfile']) . "> {$row['userfile']}</a>"; echo "</td>"; 
я думаю, это может заменить это
 $query = "INSERT INTO user_DB VALUES ('','$company', '$location', '$userfile' )"; 
с
 $query = "INSERT INTO user_DB VALUES ('','$company', '$location', '$pic' )"; 
Что-то очень основное, что вы, возможно, пропустили, это форма enctype. Многие начинающие делают это. Поэтому просто проверьте, есть ли атрибут enctype в форме.
 <form enctype="multipart/form-data"> 
Только если у вас есть это, вы можете загружать файлы через свои формы. Другое место, где вы, возможно, пошло не так,
 $query = "INSERT INTO user_DB VALUES ('','$company', '$location', '$userfile' )"; 
Вы сохраняете имя файла в переменной $ pic, но здесь вы указали $ userfile, поэтому просто попробуйте изменить это на $ pic.
вы можете использовать один столбец как auto_increament
когда вы вставляете нового пользователя, чем вы можете получить сумму уже зарегистрированных пользователей, используя этот запрос
  $ qry = mysql_qyery ("select * from users ");  и вы можете получить счет пользователя, используя 
$ count = mysql_num_rows ($ qry); поэтому после этого вы вставляете нового пользователя, и его идентификатор будет
$ count1 = $ count + 1; $ id = 'F'. $ count1;