2015-06-11 2 views
-1

Я обрабатываю проект и долгое время, когда проект находится посередине. Проблема заключается в том, что: хранить и извлекать содержимое из базы данных MySQL (локально на сервере WAMP).Хотите хранить и извлекать данные в MySQL на разных страницах

Краткий обзор о проекте, который inculdes на следующие этапы:

1) Пользователи могут создавать счета, 2) Загрузить файлы (whcih может быть текст (.rtf & .txt), изображения (.jpg & .png), docs (.doc, .xls, .pptx, .pdf) & видео (.avi & .mp4)) 3) Просмотр этих файлов и 4) Измените их.

Так понятие:

1) журналы в системе пользователя или делать регистрацию, 2) Он получает опцию следующие параметры: текст, изображения, документы & видео. 3) Пользователь выбирает любую опцию: открывает новую страницу, где пользователь может просматривать его/ее существующий контент в виде миниатюр с его именем и . 4) В дополнение к «Добавить новое» есть опция. Здесь у нас есть два условия:

  1. Если пользователь нажмет на существующий, пользователь может просмотреть его и удалить существующие файлы. Например, если это видео, пользователь может воспроизвести его, нажав на миниатюру.
  2. Если пользователь нажимает «Добавить новое», он переходит на другую страницу, где пользователь может загрузить соответствующий контент.

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

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

Так что я хочу знать, как мы можем это сделать. Я имею в виду, конкретный программный код для обеих проблем.

P.S .: Если возможно, пожалуйста, дайте мне знать, как устанавливать ограничения (валидации) выбора файла (например, при загрузке крышки FB, она показывает только ИЗОБРАЖЕНИЯ, а не ВСЕ ФАЙЛЫ).

+1

В основном вы должны хранить файл в db. Скорее вам просто нужно сохранить это конкретное имя файла в db и перенести этот файл в папку через функцию php move_uploaded_file – Nehal

+0

Также, пожалуйста, покажите свой код, я имею в виду, какие изменения и кодирование вы сделали для достижения этого – Nehal

+0

Как для PS, Его html атрибут типа ввода = «файл». '' –

ответ

0

Это должно вам помочь. Но обязательно очистите этот код от sql-инъекций.

//This is the directory where images will be saved 
$target = "pics/"; 
$target = $target . basename($_FILES['Filename']['name']); 

//This gets all the other information from the form 
$Filename=basename($_FILES['Filename']['name']); 
$Description=$_POST['Description']; 


//Writes the Filename to the server 
if(move_uploaded_file($_FILES['Filename']['tmp_name'], $target)) { 
    //Tells you if its all ok 
    echo "The file ". basename($_FILES['Filename']['name']). " has been uploaded, and your information has been added to the directory"; 
    // Connects to your Database 
    mysql_connect("localhost", "root", "") or die(mysql_error()) ; 
    mysql_select_db("yourdbname") or die(mysql_error()) ; 

    //Writes the information to the database 
    mysql_query("INSERT INTO tbl_files (Filename,Description) 
    VALUES ('$Filename', '$Description')") ; 
} else { 
    //Gives and error if its not 
    echo "Sorry, there was a problem uploading your file."; 
} 
0
// Connect to your Database 
    mysql_connect("localhost", "root", "") or die(mysql_error()) ; 
    mysql_select_db("dbname") or die(mysql_error()) ; 

// directory where images will be moved 
$file=mktime()."_".$_FILES['files']['name']; 
$target = "images/" . $file; 

//This gets all the other information from the form 
$description=$_POST['Description']; 

//Writes the Filename to the server 
if(move_uploaded_file($_FILES['files']['tmp_name'], $target)) { 
    //Tells you if its all ok 
    echo "The file has been uploaded, and your information has been added to the directory"; 


    //Writes the information to the database 
    mysql_query("INSERT INTO tbl_files (Filename,Description) 
    VALUES ('$file', '$description')") ; 
} else { 
    //Gives and error if its not 
    echo "Sorry, there was a problem uploading the file."; 
} 
0

Ваш вопрос слишком широк. Вот несколько советов. Вернитесь с более конкретными вопросами после того, как вы пробовали вещи.

Управление «пользователем» - нетривиальная задача. Вам нужна страница администратора для создания новых пользователей, удаления пользователей и т. Д. «Конечный пользователь» должен не быть пользователем «MySQL» MySQL; должен быть только один или два пользователя MySQL («приложение-пользователь»). PHP-код будет проверять «конечного пользователя», используя ваши собственные таблицы для хранения их имен, паролей и т. Д. PHP-код будет подключаться к mysql в качестве приложения-пользователя.

Файлы мультимедиа должны храниться на диске в виде файлов. Это позволяет легко использовать код HTML для отображения изображений (<img...>) или воспроизводить видео.

Миниатюры - простой ответ - относиться к ним, как к другим носителям. (В одном проекте, я хранил их в БД, и неуклюже превратили их в base64 для включения в <img...>.)

Эскизы - Там может быть эскиз в «Exif данных». Но я бы не верил, что он существует. Вместо этого я бы использовал image* подпрограммы в PHP для создания эскиза изображения. (Я не знаю, как иметь дело с миниатюрами видео.)

PHP имеет функции для загрузки медиа. Это немного неуклюжий и искаженный; изучите руководство.

PHP является придирчивым (по соображениям безопасности) о доступе к файловой системе. Вам нужно будет вытолкнуть отверстия (см. open_basedir), чтобы разрешить доступ.

Вам необходимо будет передать информацию с одной страницы на другую. Имейте в виду, что страницы HTML являются «без гражданства», поэтому ничего с одной страницы неявно доступно для следующего. You может уметь разместить все в URL-адресе (...?user=123&img=abc...). Но могут быть соображения безопасности. Или вам может понадобиться принять «куки».

"Пользователь нажимает ..." - вам may необходимо JavaScript, начинающийся с OnClick=DoSomeFunction(...). Вам может нужен AJAX, но это звучит не так.

В противном случае HTML, PHP и MySQL могут обрабатывать все, что вам нужно.

Эти примечания, вероятно, охватывают несколько тысяч строк PHP, включая несколько десятков SQL-запросов. Разделите проект среди своей команды, чтобы не каждый должен был разбираться во всех аспектах. Предлагаемая разбивка: управление пользователями; Обработка мультимедиа; Поток страниц (клики, прохождение аргументов, безопасность и т. Д.); Уровень абстракции базы данных.

+0

Вы в колледже, поэтому эта задача будет частью торта. Просто не ожидайте завершения этой недели. ;) –

Смежные вопросы