0

作成してみてください:ユーザーがファイルをアップロードした後、成功した場合はimg($filetype_acceptステートメントを渡す)を表示し、
attrid=1を追加して.upload_img、アップロードするたびにファイルIDを1増やしますid=2, id=3..
ページを更新する場合のみ、コンテナをクリアして再カウントします。

$layerimgのアップロードが成功した回数をカウントするフラグを設定しましたが、2番目のimgをアップロードした後もattrはまだid=1です。
以下は私のコードです、それを機能させるための提案はありますか?

ありがとう。

php

$filename = $_FILES['file_upload_tmp']['name'];
$filetmp_name = $_FILES['file_upload_tmp']['tmp_name'];
$filetype = $_FILES['file_upload_tmp']['tmp_name'];
$filetype_accept = $filetype == 'image/jpg';

$layer = 0;
if($_FILES){
    if($filetype_accept){
        move_uploaded_file($filetmp_name, 'upload/tmp/'.$filename);
        $layer = $layer + 1;
        print"
            <div class=\"img_wp\">
                <div class=\"upload_img\" id=\"$layer\">
                    <img src=\"upload/tmp/$filename\">
                </div>
            </div>
        ";
        return $layer;
    }
    else{
        print"upload file error, plz upload file type: $filetype";
    }
}
else{
    print"
        <div class=\"upload\">
            <form enctype=\"multipart/form_data\">
                <input type=\"file\" name=\"file_upload_tmp\">
                <input type=\"submit\" value=\"upload\" class=\"btn\">
            </form>
        </div>
        <div class=\"container\"></div>
    ";
}

js

$('.btn').click(function(e){
    e.preventDefault();
    var uf = $('.upload form');
    var fd = new FormData(uf[0]);
    $.ajax({
        type: "POST",
        url: "upload.php",
        data: fd,
        processData: false,
        contentType: false,
        success: function(html){
            var img = $(html).filter('.img_wp').html();
            $('.container').append(img);
        }
    });
});
4

1 に答える 1

1

データをサーバーに送信してから、サーバーfd.append('layer', $('.upload_img').attr('id'));で処理します$layer = (int)$_POST['layer'];

于 2013-01-24T23:38:59.440 に答える