95
110

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[JavaScript] Ajaxでファイルをアップロード【jQuery使用】

Last updated at Posted at 2015-12-12

jQuery の ajax() を用いたファイルのアップロード方法です。
jQuery を使わない方法はこちら

HTML

HTML
<form id="my_form">
	<input type="file" name="file_1">
	<button type="button" onclick="file_upload()">アップロード</button>
</form>

【注意点】
ボタンに type="button" が無い場合は submit と見なされ、ボタン押下時にブラウザーが勝手にアップロードしてしまいます(現画面を再更新)。そのため、下記 JavaScript によるアップロード処理中には意図しない status が返ってくるため、成功したり失敗したり、不可解な動きとなります。

JavaScript

JavaScript
function file_upload()
{
	// フォームデータを取得
	var formdata = new FormData($('#my_form').get(0));

	// POSTでアップロード
	$.ajax({
		url  : "http://your_site.com/upload.php",
		type : "POST",
		data : formdata,
		cache       : false,
		contentType : false,
		processData : false,
		dataType    : "html"
	})
	.done(function(data, textStatus, jqXHR){
		alert(data);
	})
	.fail(function(jqXHR, textStatus, errorThrown){
		alert("fail");
	});
}

PHP

PHP
<?php
// 一時アップロード先ファイルパス
$file_tmp  = $_FILES["file_1"]["tmp_name"];

// 正式保存先ファイルパス
$file_save = "/var/www/html/save/" . $_FILES["file_1"]["name"];

// ファイル移動
$result = @move_uploaded_file($file_tmp, $file_save);
if ( $result === true ) {
	echo "UPLOAD OK";
} else {
	echo "UPLOAD NG";
}
?>

(・o・ゞ いじょー。

参考URL

95
110
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
95
110

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?