Как сохранить имя файла в базе данных с другой информацией при загрузке изображения на сервер с помощью PHP?

Вы не можете добавлять клиентов в свой Магазин из внешнего интерфейса, используя вызовы Javascript для / admin. Это будет означать, что вы будете раскрывать ключи API приложения для широкой публики. Вместо этого Shopify предоставляет вам формы, которые клиенты заполняют, и они отправляются в магазин и обрабатываются надежно.

Если вы настаиваете на добавлении клиентов с помощью своих собственных форм, вы можете настроить приложение с разрешениями на добавление клиентов, а затем использовать шаблон прокси-сервера приложения, чтобы отправить форму в приложение для создания клиентов. Это безопасно и работает.

25
задан Rishabh 27 November 2016 в 12:15
поделиться

5 ответов

Вот ответ для тех из Вас сходство с, я сделал на всем протяжении сети, пытающейся узнать, как сделать эту задачу. При загрузке фотографии на сервер с именем файла, сохраненным в mysql базе данных и других данных формы, Вы хотите в своей Базе данных. Сообщите мне, помогло ли это.

Во-первых форма Вам нужно:

    <form method="post" action="addMember.php" enctype="multipart/form-data">
    <p>
              Please Enter the Band Members Name.
            </p>
            <p>
              Band Member or Affiliates Name:
            </p>
            <input type="text" name="nameMember"/>
            <p>
              Please Enter the Band Members Position. Example:Drums.
            </p>
            <p>
              Band Position:
            </p>
            <input type="text" name="bandMember"/>
            <p>
              Please Upload a Photo of the Member in gif or jpeg format. The file name should be named after the Members name. If the same file name is uploaded twice it will be overwritten! Maxium size of File is 35kb.
            </p>
            <p>
              Photo:
            </p>
            <input type="hidden" name="size" value="350000">
            <input type="file" name="photo"> 
            <p>
              Please Enter any other information about the band member here.
            </p>
            <p>
              Other Member Information:
            </p>
<textarea rows="10" cols="35" name="aboutMember">
</textarea>
            <p>
              Please Enter any other Bands the Member has been in.
            </p>
            <p>
              Other Bands:
            </p>
            <input type="text" name="otherBands" size=30 />
            <br/>
            <br/>
            <input TYPE="submit" name="upload" title="Add data to the Database" value="Add Member"/>
          </form>

Затем этот код обрабатывает Вас данные из формы:

   <?php

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

// This gets all the other information from the form
$name=$_POST['nameMember'];
$bandMember=$_POST['bandMember'];
$pic=($_FILES['photo']['name']);
$about=$_POST['aboutMember'];
$bands=$_POST['otherBands'];


// Connects to your Database
mysqli_connect("yourhost", "username", "password") or die(mysqli_error()) ;
mysqli_select_db("dbName") or die(mysqli_error()) ;

// Writes the information to the database
mysqli_query("INSERT INTO tableName (nameMember,bandMember,photo,aboutMember,otherBands)
VALUES ('$name', '$bandMember', '$pic', '$about', '$bands')") ;

// Writes the photo to the server
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
{

// Tells you if its all ok
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";
}
else {

// Gives and error if its not
echo "Sorry, there was a problem uploading your file.";
}
?> 

Код отредактирован из www.about.com

26
ответ дан choket 28 November 2019 в 21:39
поделиться

Если Вы хотите ввести больше данных в форму, Вы просто получаете доступ к отправленным данным через $ _POST.

Если Вы имеете

<input type="text" name="firstname" />

Вы получаете доступ к нему с

$firstname = $_POST["firstname"];

Вы могли затем обновить свою строку запроса для чтения

mysql_query("INSERT INTO dbProfiles (photo,firstname)
             VALUES('{$filename}','{$firstname}')");

Примечание: Всегда отфильтруйте и санируйте свои данные.

0
ответ дан Sampson 28 November 2019 в 21:39
поделиться

Ваша часть:

$result = mysql_connect("localhost", "******", "*****") or die ("Could not save image name

Error: " . mysql_error());

mysql_select_db("project") or die("Could not select database");
mysql_query("INSERT into dbProfiles (photo) VALUES('".$_FILES['filep']['name']."')");
if($result) { echo "Image name saved into database

";

Не имеет большого смысла, Ваше соединение нельзя назвать $result, но это - проблема именования не кодирующая.

То, что является проблемой кодирования, - то, если ($result), Ваше высказывание, если можно соединиться с базой данных независимо от сбоя запроса на вставку или следования за Вами, произведет "Образ, сохраненный в базу данных".

Попытайтесь добавить, делают

$realresult = mysql_query("INSERT into dbProfiles (photo) VALUES('".$_FILES['filep']['name']."')");

и изменитесь если ($result) к $realresult

Я подозреваю, что Ваш запрос перестал работать, возможно, у Вас есть дополнительные столбцы или что-то?

Попробуйте копируют/вставляют Ваш запрос, заменяя ". $ _FILES ['filep'] ['имя']". с тестом и выполнением это в Вашем браузере запроса и видит, входит ли это.

0
ответ дан savageguy 28 November 2019 в 21:39
поделиться

В JDK 1,0 действительно было необходимо иметь хотя бы один абстрактный метод в абстрактном классе. Это ограничение было снято в JDK 1.1 (1997? (Я старый)) и такие классы, добавленные в библиотеку Java, как java.awt.event.KeyAdapter .

В C++ необходима по крайней мере одна чистая виртуальная функция, чтобы сделать подкласс необходимым, и по крайней мере одна виртуальная функция, чтобы добавить RTTI в класс. Обычно имеет смысл использовать деструктор.

При переопределении неабстрактных методов рекомендуется использовать @ Override . Он не только сообщает читателю важную информацию о том, что пытается сделать код, но и обнаруживает распространенные ошибки, когда опечатки или неправильные типы параметров препятствуют переопределению.

-121--2190419-

Говоря с точки зрения ООП, я не думаю, что запись сохранит себя. Запись в базе данных - это просто данные, а сама база данных - это то, что делает с этими данными, будь то сохранение, загрузка или т.д. При этом я сделаю запись просто объектом, который содержит данные и создаст объект набора записей для взаимодействия с данными. В этот объект набора записей можно поместить список записей и соответствующим образом обновить его. Что-то вроде:

var recordset = function() {
    var me = this;
    var currentRecord = object.create("record");
    var recordList = object.create("recordList");
    me.save = function() {
            //Insert record.save code here
            recordList.refresh();
    };
};

Что-то отметить об этом коде. В этой настройке currentRecord и recordList не могут быть доступны вне функции, и поэтому у вас есть инкапсуляция, одна из отличительных черт OOP. Это происходит потому, что функция набора записей является замыканием, которое «закрывает» все переменные внутри, что означает, что каждая функция внутри имеет доступ к переменным в области набора записей.

Вы можете позволить внешнему миру получить доступ через функции get или set:

    me.getRecordList = function() {
        return recordList.getArray(); //Not generally a good idea to simply return your internal object
    };
-121--4067202-
<form method="post" action="addMember.php" enctype="multipart/form-data">
    <p>
              Please Enter the Band Members Name.
            </p>
            <p>
              Band Member or Affiliates Name:
            </p>
            <input type="text" name="nameMember"/>
            <p>
              Please Enter the Band Members Position. Example:Drums.
            </p>
            <p>
              Band Position:
            </p>
            <input type="text" name="bandMember"/>
            <p>
              Please Upload a Photo of the Member in gif or jpeg format. The file name should be named after the Members name. If the same file name is uploaded twice it will be overwritten! Maxium size of File is 35kb.
            </p>
            <p>
              Photo:
            </p>
            <input type="hidden" name="size" value="350000">
            <input type="file" name="photo"> 
            <p>
              Please Enter any other information about the band member here.
            </p>
            <p>
              Other Member Information:
            </p>
<textarea rows="10" cols="35" name="aboutMember">
</textarea>
            <p>
              Please Enter any other Bands the Member has been in.
            </p>
            <p>
              Other Bands:
            </p>
            <input type="text" name="otherBands" size=30 />
            <br/>
            <br/>
            <input TYPE="submit" name="upload" title="Add data to the Database" value="Add Member"/>
          </form>

сохранить его как addMember.php

<?php

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

//This gets all the other information from the form
$name=$_POST['nameMember'];
$bandMember=$_POST['bandMember'];
$pic=($_FILES['photo']['name']);
$about=$_POST['aboutMember'];
$bands=$_POST['otherBands'];


// Connects to your Database
mysql_connect("yourhost", "username", "password") or die(mysql_error()) ;
mysql_select_db("dbName") or die(mysql_error()) ;

//Writes the information to the database
mysql_query("INSERT INTO tableName (nameMember,bandMember,photo,aboutMember,otherBands)
VALUES ('$name', '$bandMember', '$pic', '$about', '$bands')") ;

//Writes the photo to the server
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
{

//Tells you if its all ok
echo "The file ". basename( $_FILES['photo']['name']). " has been uploaded, and your information has been added to the directory";
}
else {

//Gives and error if its not
echo "Sorry, there was a problem uploading your file.";
}
?>

в приведенном выше коде одну маленькую ошибку, я исправил эту ошибку.

2
ответ дан 28 November 2019 в 21:39
поделиться

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

"freddy's pic.jpg"

которые допустимы в некоторых операционных системах.

Before:

$pic=($_FILES['photo']['name']);

After:

$pic=(mysql_real_escape_string($_FILES['photo']['name']));
0
ответ дан 28 November 2019 в 21:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: