0

私は自分のウェブサイトの管理者側を更新しています。

現在、サイトのデータベースにアップロードしてコンテンツを表示する追加ページを含めることができました。

このページには、画像のアップロード ボタンがあります。

このアップロード ボタンからファイルを選択すると、画像が /images フォルダーに保存されます。

でも。iPad でこの機能を使用して画像をアップロードすると、すべての画像が image.jpg としてアップロードされます。

私が今必要としているのはこれです:

元のアップロードされた画像の名前ではなく、ブランドの名前で保存するには、アップロードした画像が必要です。したがって、「image.jpg」をアップロードし、ブランドとして APPLE を入力すると、ファイルをアップロードするときに画像を apple.jpg として保存する必要があります。

私の現在のadd.phpページはこれです:

<?php

session_start();

include_once('../include/connection.php');

if (isset($_SESSION['logged_in'])){
  if (isset($_POST['title'], $_POST['content'])) {
        $title   = $_POST['title'];
        $content = nl2br($_POST['content']);
        if (!empty($_POST['image']))
        {
            $image = $_POST['image'];
        }
        else
        {
            $image = $_POST['imageupload'];

            if (isset($_FILES['imageupload']))
            {
              $errors = array();
              $allowed_ext = array('jpg', 'jpeg', 'png', 'gif');

              $file_name = $_FILES['imageupload'] ['name'];
              $file_ext = strtolower (end (explode ('.', $file_name)));
              $file_size = $_FILES['imageupload'] ['size'];
              $file_tmp = $_FILES['imageupload'] ['tmp_name'];

              if (in_array ($file_ext, $allowed_ext) === false) {
                     $errors[] = 'File extension not allowed';
              }

              if ($file_size > 2097152) {
                     $errors[] = 'File size must be under 2mb';
              }

              if (empty($errors)) {
                     if (move_uploaded_file($file_tmp, 'images/'.$file_name)) {
                           echo 'File uploaded';
                           $image = 'http://www.xclo.mobi/xclo2/admin/images/'.$file_name;
              }
              }else{
                    foreach ($errors as $error)
                    echo $error, '<br />';
              }

            }
        }
        $link     = $_POST['link'];
        $category = $_POST['category'];
        $brand    = $_POST['brand'];


if (empty($title) or empty($content)) {
         $error = 'All Fields Are Required!';
}else{
 $query = $pdo->prepare('INSERT INTO mobi (promo_title, promo_content, promo_image, promo_link, promo_cat, promo_name) VALUES(?, ?, ?, ?, ?, ?)');
 $query->bindValue(1, $title);
 $query->bindValue(2, $content);
 $query->bindValue(3, $image);
 $query->bindValue(4, $link);
 $query->bindValue(5, $category);
 $query->bindValue(6, $brand);



     $query->execute();
    header('location: index.php');
}

}
          ?>
    <?php

if (isset($_FILES['Filedata']))
{
// And if it was ok
    if ($_FILES['Filedata']['error'] !== UPLOAD_ERR_OK)
    exit('Upload failed. Error code: ' . $_FILES['image']['error']);

    $filename = $_FILES['Filedata']['name'];
    $targetpath    = "../img/news/" . $filename; //target directory relative to script location

    $copy = copy($_FILES['Filedata']['tmp_name'], $targetpath);
}
?>

<html>
<head>
<title>Add Article</title>
<link rel="stylesheet" href="../other.css" />
</head>

<body>
<div class="container">
<a href="index.php" id="logo"><b>&larr; Back</b></a>

<br />

<div align="center">
<h4>Add Article</h4>

<?php if (isset($error)) { ?>
     <small style="color:#aa0000;"><?php echo $error; ?></small><br /><br />
<?php } ?>

<form action="" method="post" autocomplete="off" enctype="multipart/form-data">

<input type="text" name="title" placeholder="Title" /><br /><br />
<textarea rows="15" cols="50" placeholder="Content" name="content"></textarea><br /><br />
<input name="imageupload" type="file" id="image" placeholder="Imageupload" />
<input type="text" name="image" placeholder="Image" /><br /><br />
<input type="link" name="link" placeholder="Link" /><br /><br />
<input type="category" name="category" placeholder="Category" /><br /><br />
<input type="category" name="brand" placeholder="Brand" /><br /><br />
<input type="submit" value="Add Article" />

</form>
</div>
</div>
</body>
</html>


<?php
}else{
       header('location: index.php');
}

?>

誰か助けてください。ありがとうございました。

4

3 に答える 3

0

アップロード プロセス中に、ファイル名を希望する新しいファイル名に変更する必要があります。

{
    $errors = array();
    $allowed_ext = array('jpg', 'jpeg', 'png', 'gif');

    $file_name = $_FILES['imageupload'] ['name'];
    $file_ext = strtolower (end (explode ('.', $file_name)));
    $file_size = $_FILES['imageupload'] ['size'];
    $file_tmp = $_FILES['imageupload'] ['tmp_name'];

    $file_name = $_POST['brand'].'.'.$file_ext;
于 2013-09-03T16:53:21.137 に答える
0

1) 画像拡張子を取得する

$ext = pathinfo($ファイル名, PATHINFO_EXTENSION);

2) ブランド名と拡張子を連結してファイルをアップロードします

move_uploaded_file($_FILES['imageupload'] ['tmp_name'], $_POST['your_brand'].'.'.$ext);

于 2013-09-03T17:02:18.787 に答える
0

私はこのコードを使用しましたが、うまく機能します。

ありがとうございました。

$brand = $_POST['brand']; // Put this up by where you define $title


$up_file = $brand.'.'.$file_ext;
if (move_uploaded_file($file_tmp, 'images/'.$up_file)) {
echo 'File uploaded';
$image = 'www.mysite.com/images/'.$up_file;
}

1upしてください...

于 2013-09-03T16:59:53.127 に答える