ajax、jquery、phpを使用して画像をフォルダにアップロードしようとしていますが、ファイル入力値を自分のPHPファイルに送信する方法がわかりません。私は自分のコードを実行すると、私は次のメッセージが出ます:。ajax/jqueryを使用して画像をフォルダにアップロード
このarchivo
未定義のインデックスを、私のAJAX呼び出し(PD他のすべてのパラメータが正常に動作している、私は、ファイルの入力値に問題があります)
function Registrar() { var cat = $('#cat').val(); var nom = $('#name').val(); var desc = $('#description').val(); var image = $('#archivo').val(); //Also tried with this, to remove the fakepath string... $('input[type=file]').val().replace(/C:\\fakepath\\/i, '') $.ajax({ url: '../../class/upload.php', method: 'POST', data: { categoria: cat, nombre: nom, descripcion: desc, archivo: image, activo: act, disponible: disp, precio: prec }, success: function (data) { console.log(data); } }); }
PHPファイル:
<?php $categoria = $_POST['categoria']; $nombre = $_POST['nombre']; $descripcion = $_POST['descripcion']; $img = $_POST['archivo']; $activo = $_POST['activo']; $disponible = $_POST['disponible']; $precio = $_POST['precio']; $IdCategoria = 0; $filepath = ""; //Imagen if($categoria=="Piano") { $IdCategoria = 1; $filepath = "../Files/Productos/Piano/".$img; } $filetmp = $_FILES['archivo']['tmp_name']; move_uploaded_file($filetmp, $filepath); echo $IdCategoria.$nombre.$descripcion.$filepath.$activo.$disponible.$categoria.$precio; ?>
そして、私のHTMLの重要な部分:
<form id="registerForm" method="post" role="form" enctype="multipart/form-data" > <input name="archivo" id="archivo" style="width: 70%;" name="textinput" class="btn btn-block" type="file" onchange="showimagepreview(this)" />
はEDIT:showimagepreview
function showimagepreview(input) { if (input.files && input.files[0]) { var reader = new FileReader(); reader.onload = function (e) { document.getElementsByTagName("img")[0].setAttribute("src", e.target.result); } reader.readAsDataURL(input.files[0]); } }
どのように私はこの問題を解決することができますか?
可能な重複:https://stackoverflow.com/questions/23980733/jquery-ajax-file-upload-php –
あなたは「あなたの見ることができますshowFilePreview "関数?それは必要な解決策を持っているかもしれません。それはFileReaderを使用していますか? –
@GarrGodfreyはい、私はFileReaderを使用して、私は自分の投稿にそのコードを追加しました。 – User1899289003