dongpa6867 2017-12-10 06:40
浏览 33
已采纳

插入带标题的多个图像

I need to insert multiple images with ad name every row. I am unable to insert ad name. I fail to modify the php code. There is no problem to insert multiple images. But problem comes when try to insert ad name with images. Plz help.

HTML

<form action="posting_ad_imagec.php" method="post" enctype="multipart/form-data">
Ad Title: <input type="text" id="ad_name" name="ad_name[]"/>
<input type="file" id="files" name="files[]" multiple="multiple" />
<input type="submit" name="submit" value="Submit">
</form>

PHP:

<?php

    $dir='ad/data/img/';

    if( isset( $_POST['submit'], $_FILES['files'] ) ) {

        $uploaded=array();
        $ad_names = $_POST["ad_name"];
        $sql = 'insert into `full texts` set `img_name` = ?, `img_type` = ?, `img_size` = ?, `ad_name` = ?';
        $stmt = $connection->prepare( $sql );


        if( $stmt ){

            $stmt->bind_param( 'ssss', $name, $type, $size, $ad_name);

            foreach( $_FILES['files']['name'] as $i => $name ) {
                if( !empty( $_FILES['files']['tmp_name'][$i] ) ) {

                    $name = $_FILES['files']['name'][$i];
                    $size = $_FILES['files']['size'][$i];
                    $type = $_FILES['files']['type'][$i];
                    $tmp  = $_FILES['files']['tmp_name'][$i];
                    $ad_name = $ad_names[$i];


                    if( is_uploaded_file( $tmp ) ){
                        $bytes = move_uploaded_file( $tmp, $dir.$name );
                        if( $bytes ){
                            $status = $stmt->execute();
                            $uploaded[]=$status && $bytes ? $name : false;
                        }
                    }
                }
            }
            if( !empty( $uploaded ) ){
                $_SESSION['s']=sprintf("%d images successfully saved", count( $uploaded ) );
                header('Location: posting_ad_image.php');
            }
        }
    }
?>
  • 写回答

1条回答 默认 最新

  • drau89457 2017-12-11 16:04
    关注

    Step 1: Change name="ad_name[]" to name="ad_name" (no more brackets)
    Step 2: Change $ad_names = $_POST["ad_name"]; to $ad_name = $_POST["ad_name"] (singular)
    Step 3: Trash $ad_name = $ad_names[$i]; (no longer needed)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?
  • ¥15 讲解电路图,付费求解
  • ¥15 有偿请教计算电磁学的问题涉及到空间中时域UTD和FDTD算法结合的
  • ¥15 three.js添加后处理以后模型锯齿化严重