• 締切済み

画像のupができません。

お世話になっております。 PHPでCMSを組んでいるのですが、画像のUPロードがうまくいきません。 DBにはファイル名が登録されるのですが、画像ファイルが指定フォルダに入りません。 詳しい方、ご教授願います。 抜粋部分です。 Functionファイル内 function image($image, $folder, $options=array()){ if($image){ $option=getOptions($options); $img='<img src="'.$folder.$image.'"'.$option.'/>'; return $img; }else{ return "&nbsp;"; } } function uploadFile($data, $confirm=false, $options=array()){ if($confirm){ $file=hidden($data["name"],$data["value"]); }else{ $option=getOptions($options); $file='<input type="file" name="'.$data["name"].'"'.$option.'/>'; } return $file; } ソースコード部分 foreach ($imageList as $key => $title) { if(!empty($_FILES[$key]["tmp_name"])){ if($err == UPLOAD_ERR_OK){ if(isAllowedExtension($_FILES[$key]["name"],$allowedExtensions)) { if(isset($id)){ if($oldData[$key]!=$_FILES[$key]["name"] && file_exists(DIR_IMAGES.$_FILES[$key]["name"])){ $error=$_FILES[$key]["name"]."ファイルが存在します"; }else{ $new_img[$key]=$_FILES[$key]["name"]; move_uploaded_file($_FILES[$key]["tmp_name"],DIR_IMAGES."tmp.".$_FILES[$key]["name"]); } }else{ if(file_exists(DIR_IMAGES.$_FILES[$key]["name"])){ $error=$_FILES[$key]["name"]."ファイルが存在します"; }else{ $new_img[$key]=$_FILES[$key]["name"]; move_uploaded_file($_FILES[$key]["tmp_name"],DIR_IMAGES."tmp.".$_FILES[$key]["name"]); } } }else{ $error=$title.":画像ファイルを選択して下さい"; } }else{ $error=$title.":アップロードエラー。<br />"; } } } 登録部分 <td>&nbsp;<?php if(!$mode){?> <?php $file_data=array('name'=>"image_search", 'value'=>$new_img["image_search"]); echo uploadFile($file_data,$mode,array("size"=>'37'));?> <?php } //確認画面で新しい画像かどうか判断 if($new_img["image_search"]){ $image_search=$new_img["image_search"]; $rest = substr($image_search, 0, 4); if($rest=="tmp."){ $image_search=substr($image_search, 4, strlen($image_search)); } $image_file="tmp.".$image_search; echo hidden("new_img[image_search]", $image_search); }elseif($data['image_search']){ $image_search=$data["image_search"]; $image_file=$data["image_search"]; } echo hidden("data[image_search]", $image_search); if($image_search){ if(!$mode){?> <div class='clear'></div> <div class='title1 left'></div><?php }?> <?php } if($image_search){ if(!$mode){?> <div class='clear'></div> <div class='title1 left'></div><?php }?> <div class='img_name left'><?php echo $image_search;?></div> <div class='clear'></div> <div class='title1 left'></div> <div class='left'><?php echo image($image_file,DIR_IMAGES, array('border'=>"0",'style'=>"width: 100px"))?></div> <?php }?> </td> よろしくお願い致します。

  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.1

そちらのスクリプト読んでない投げっぱなしな回答ですみません。 指定フォルダのパーミッションはどうなってますか? 書き込み権限与えてますか?

関連するQ&A

  • 画像アップ

    php初心者です 簡単な画像アップロードを付けたいと思っています それでアップだけはなんとかできたのですが、もう少し機能を付けたいです 付けたい機能は 1.拡張子を調べて限定したい。gif、jpg、pngの三つを許可したい 2.画像の横と縦の幅が指定した幅より大きければ、指定した幅まで縦横比維持で縮小 100*100 3.もう一つのディレクトリに、小さいサムネイルを作りたい。大きさは32*32です 4.拡張子はそのままにして画像の名前をリネームしたいです よろしくお願いします(_ _ <?php $img_name = $_FILES["upfile"]["name"]; $img_size = $_FILES["upfile"]["size"]; $img_type = $_FILES["upfile"]["type"]; if($_REQUEST["up"] != ""){ if($img_tmp != "" and $img_size <= 50000){ $img_message = "名前は: $img_name <br>サイズは: $img_size <br>MIMEタイプは: $img_type"; if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) { if (move_uploaded_file($_FILES["upfile"]["tmp_name"], "files/" . $_FILES["upfile"]["name"])) { chmod("files/" . $_FILES["upfile"]["name"], 0604); print $_FILES["upfile"]["name"] . "をアップロードしました。"; } else { print "ファイルをアップロードできません。"; } } else { print "ファイルが選択されていません。"; } }else{ $size_error = "サイズが大きすぎます"; } } ?> <html> <head> <title>画像アップロード</title> </head> <body> <form name="form" action="" method="POST" ENCTYPE="MULTIPART/FORM-DATA"> <input name="upfile" type="file" size="40"> <input name="up" type="submit" value="アップロード"><hr> </form> <?php print($size_error); ?><?php print($img_message); ?> </body> </html>

    • ベストアンサー
    • PHP
  • php フォームで画像アップ

    phpにてフォームで画像をUPできる機能を持たせたいのですが、うまくできあがりません。 ファイルもUPされませんがその前の、 $_FILES ***; が機能していないようなのです。 (たとえば$img1をprintしても空となる) http://masago.kir.jp/php20030814.php http://masago.kir.jp/phpsc.php?s=php20030814s.php を参考に $img1 = $_FILES ['aaa']; $img1tmp = $_FILES ['aaa']['tmp_name']; $img1name = $_FILES ['aaa']['name']; $img1size = $_FILES ['aaa']['size']; $img1type = $_FILES ['aaa']['type']; とし、 <input type="file" name="aaa" ENCTYPE="multipart/form-data"> としています。 またレンタルサーバをもちいているのですが、 htaccessの中身は、 <IfModule mod_php4.c> php_value register_globals 1 ・ ・(省略) ・ php_value file_uploads 1 php_value upload_tmp_dir /○○/ </IfModule> としています。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • 画像をアップロードする度に古い画像を削除

    お世話になっております。 とあるサイトのソースを参考に画像のリアルタイムプレビューを作成しました。 画像を上げプレビューを表示することはできたのですが画像を上げる度に次々と表示される画像が増えてしまいます。 画像を新しく上げる場合は以前に入っていた画像を削除する、 もしくは最後に上げた画像のみをプレビュー表示する方法はありますでしょうか? unlinkを使用して削除を考えたのですが、 削除とアップロードの両立ができませんでした。 以下が使用しているソースになります。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>jQuery.uploadのサンプル</title> <script type="text/javascript" src="./js/jquery-1.7.1.min.js"></script> <script type="text/javascript" src="./js/jquery.upload-1.0.2.min.js"></script> <script type="text/javascript"> $(function() { $('#file_id').change(function() { $(this).upload('upload.php', function(res) { $(res).insertAfter(this); }, 'html'); }); }); </script> </head> <body> <style> .thumb { height: 200px; border: 1px solid #000; margin: 10px 5px 0 0; } </style> <input type="file" name="upload_file" id="file_id"> </body> </html> <?php #アップロードされたファイルが存在するか if ( !is_uploaded_file( $_FILES['upload_file']['tmp_name'] ) ) { echo '<div>ファイルが選択されていません。</div>'; exit(); } #$_FILES["upload_file"]["tmp_name"]がテンポラリにあるファイル名 #$_FILES["upload_file"]["name"]がアップロード元のファイル名 #tmpからファイルをコピー move_uploaded_file($_FILES["upload_file"]["tmp_name"], "files/" . $_FILES["upload_file"]["name"]); echo '<div>'.$_FILES["upload_file"]["name"].'をアップロードしました</div>'; echo '<img class="thumb" src="files/' . $_FILES["upload_file"]["name"] . '">' ?> どなたかご回答いただけましたら幸いでございます。 どうぞ宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHP ファイルupロードのセキュリティ

    ただいま ファイルUPロードするための簡単なPHPプログラムをせいさくしています 。 セキュリティの部分とか足らないところがるとは思うのですが、 下のプログラjムをどうやって改造すればいいのでしょうか? たとえば 容量を制限する。 ファイル種類を限定する等  おしえて頂きたいと思っています。 よろしくお願いたします。 <body> <p><?php if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) { if (move_uploaded_file($_FILES["upfile"]["tmp_name"], "files/" . $_FILES["upfile"]["name"])) { chmod("files/" . $_FILES["upfile"]["name"], 0644); echo $_FILES["upfile"]["name"] . "をアップロードしました。"; } else { echo "ファイルをアップロードできません。"; } } else { echo "ファイルが選択されていません。"; } ?></p> </body> </html>

    • 締切済み
    • PHP
  • ファイルのアップロードについて

    phpのmove_uploaded_fileを使用してアップロードをしようと思うのですがアップロードが出来ません。 状況は ローカル環境のwindowsでのアップロードは行えるがlinuxでは失敗してしまいます。 move_uploaded_fileからはエラーは出力されていません そもそもmove_uploaded_fileが成功しているのになんでアップロードされていないのか分かりません。 //■HTML <form name="form1" method="post" action="upload.php" ENCTYPE="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="10485760" /> <table class="frm" id="tbl"> <tr><th>ファイル1<div id="image"></div></th> <td> 画像<input id="img_1" type="file" name="image[]" class="fname" onChange=imageChange(this); /><br /> </td></tr> <tr> <th>ファイル2<div id="image"></div></th> <td> 画像<input id="img_2" type="file" name="image[]" class="fname" onChange=imageChange(this); /><br /> </td> </tr> </table> </form> //■phpで以下のコードを実行すると oreach ($_FILES["image"]["error"] as $key => $error) { //複数のファイルをアプロード if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["image"]["tmp_name"][$key]; //テンポラリファイルパス $name = $_FILES["image"]["name"][$key]; //アップロードファイル名 $size = $_FILES["image"]["size"][$key]; //アップロードファイルサイズ $ermsg = $_FILES['image']['error'][$key]; //エラーメッセージ echo "アップロードファイル名".$name."\n" ; echo "アップロードファイルsize" .$size ."\n" ; echo "errmsg= .$ermsg."\n" ; // ファイルアップロード $cnt++; if ( move_uploaded_file($tmp_name, "../1/33/.$cnt."2upload.jpg ")){ //ファイルアップロード echo "アップロード成功 .$ermsg."\n" ; echo "  テンポラリファイル="$tmp_name."\n"; echo "  アップロードファイル="$dir_img."/".$cnt.UPLOAD_FILE_NAME."\n"; } else { echo 1; error_log("upload error! \n", 3, MATCHING_ERROR_LOG); exit; } } } exit; ■結果 アップロードファイル名thum6.jpg アップロードファイルsize=10104 errmsg= 0 アップロード成功   テンポラリファイル=/tmp/phpMvCzgo   アップロードファイル=../1/33/1upload.jpg アップロードファイル名 thum3.jpg アップロードファイルsize=11528 errmsg= 0 アップロード成功   テンポラリファイル=/tmp/php5Q4kIL   アップロードファイル=../1/33/2upload.jpg テンポラリの/tmpは777のため権限に問題ないです php.iniの設定 upload_max_filesize=2m post_max_size=8m memory_limit=128m 今回のアップロードファイルのサイズから問題なし file_uploads=onなので問題ありませんでした これでなにかわかる方いらっしゃいましたら教えてください。

    • ベストアンサー
    • PHP
  • アップローダーの作製

    お世話になります。 アップローダーでmp4をUPしたいです。 下記の様なフォームを記述したところ、jpegはUP出来たのですが、mp4はアップできませんでした。 フォーム-------------------------------------------------------------------------------------- <?php //アップローダー function upload(){ $filename = $_GET["onamae"]; $max = 1024*1024*10; $array = array("01.jpg","02.jpg","03.jpg","pv.mp4"); for($i = 0; $i < count($array); ++$i){ ?> <div> <form method="post" enctype="multipart/form-data" action="uploader.php"> <input type="hidden" name="MAX_FILE_SIZE" value="<?php print $max; ?>"> <input name="userfile" type="file"> <input type="submit" value="アップロード" name="up"> <input name="filename" type="hidden" value="<?php print $array[$i]; ?>"> <input name="filemei" type="hidden" value="<?php print $filename; ?>"> </form> </div> <?php } } ?> uploader.php--------------------------------------------------------------------------------- <?php $filedir = "../girl/" . $_POST["filemei"] . "/" . $_POST["filename"]; $file_path = $filedir ; if(move_uploaded_file($_FILES['userfile']['tmp_name'], $file_path)){ ?> <div class="message">ファイルのアップロードに成功しました。</div> <?php } else{ ?> <div class="message">ファイルのアップロードに失敗しました</div> <?php } ?> ---------------------------------------------------------------------------------------------- 記述ミスあるかもです。すいません。

    • 締切済み
    • PHP
  • jqueryで、後から追加した画像もドラッグ&ドロップできるようにした

    jqueryで、後から追加した画像もドラッグ&ドロップできるようにしたい 以下のようにして、画像をドラッグ&ドロップできるようにしています そこに、新たに画像をアップロードして、その画像もドラッグできるようにするところで詰まってしまいました アップロードする時に画面遷移を起こしたくなかったので、インラインフレームを使っています upload.phpでアップロードされた画像を取得して、divタグのクラス名を指定したりしてappendChildで親フレームに挿入 しかし、画像が表示されはするのですがドラッグしようとしても何も起こらない状態です Firebugでも見てみると、元の画像は <div class="dragArea ui-draggable"><img src="./img0.jpg" width="100" height="100"></div> となっていますが、アップロードした画像(新規追加した要素)は、 <div id="adddragfile"><div class="dragArea"><img src="././tmp/newimg.jpg" width="100" height="100"></div></div> となっていて、ドラッグ属性が付いていないように思えます よろしくお願いします /* include.php */ //ドラッグ可能な画像 <div class='dragArea'><img src='./img0.jpg' width='100' height='100'></div> //ここにタグを追加していく <div id='adddragfile'></div> //ドロップ先となる画像 <div class='dropArea'><img src='./img1.jpg' width='300' height='300'></div> <div class='dropArea'><img src='./img2.jpg' width='300' height='300'></div> //ファイルのアップロード <iframe title='upload_frame' name="upload_frame" style="display:none"></iframe> <form action="./upload.php" method="post" enctype="multipart/form-data" target="upload_frame"> <input type="hidden" name="max_file_size" value="1000000"> <input type="file" name="upload_image"> <input type="submit" value="画像アップロード"> </form> /* jqueryファイル */ $(function(){ $(".dragArea").draggable({ cursor:'move', helper:'clone' }); $(".dropArea").droppable({ drop:function(e,ui){ alert("ドロップされました"); } }); }); /* upload.php */ <?php $upload_dir = './tmp/'; $filename = $_FILES['upload_image']['name']; move_uploaded_file($_FILES['upload_image']['tmp_name'], $upload_dir.$filename); ?> <script type="text/javasscript"> //親フレームのオブジェクトを取得 var container = parent.document.getElementById('adddragfile'); //要素を作成していく div = parent.document.createElement('div'); div.className = "dragArea"; image = parent.document.createElement('img'); image.src = './<?php print($upload_dir.$filename);?>'; image.width = "100"; image.height = "100"; container.appendChild(div); div.appendChild(image); </script>

  • PHPで画像をアップロード&保存したいのですが..

    初心者です. ブラウザから画像をアップロードし保存できるようにしたく, サンプルを基に以下のようなソースを書いてみたのですが, 画像の保存ができません. もし直さなければいけないところがわかる人がいらっしゃいましたら ぜひ教えてください. よろしくお願いいたします. <?php $img_name = $_FILES["img_path"]["name"]; $img_size = $_FILES["img_path"]["size"]; $img_type = $_FILES["img_path"]["type"]; $img_tmp = $_FILES["img_path"]["tmp_name"]; if($_REQUEST["up"] != ""){ if($img_tmp != "" and $img_size <= 30000){ $img_message = "名前は: $img_name <br>サイズは: $img_size <br>MIMEタイプは: $img_type <br>一時的に保存されているパスは: $img_tmp <br>"; }else{ $size_error = "サイズが大きすぎます。ファイルサイズは30キロバイト以下です。"; } } $FilePath = "./img/".src.".".GetExt($img_name); move_uploaded_file($img_temp,$FilePath); //GetExt function GetExt($FilePath){ $f = strrev($FilePath); $ext = substr($f, 0, strpos($f,".")); return strrev($ext); } ?>

    • 締切済み
    • PHP
  • 画像のアップに関して

    画像のアップロードしたいのですが、 下記の記述方法でアップしようとすると エラーメッセージで 「Warning: imagejpeg() [function.imagejpeg]: Unable to open '../members/img/38.jpg' 」 と表示されてうまく行きません。初歩的なミスかもしれませんが 御指導お願い致します。 なお下記の  $upload = "../members/img/";  $new_pic = "../members/img/"; を  $upload = "./img/";  $new_pic = "./img/"; とうまく表示されるのですが、どうしてかわかりません。 御指導お願い致します。 if ( $_SERVER['REQUEST_METHOD'] == "POST" ) { $target = $_FILES['MyUploadFile']['name']; $target = strtoupper($target); $ext = array("JPG","JPEG"); $file_ok = false; foreach( $ext as $Value ) { $target2 = basename( $target, $Value ); if ( strlen( $target2 . $Value ) == strlen( $target ) ) { $file_ok = true; break; } } if ( $file_ok ) { if ( is_uploaded_file( $_FILES['MyUploadFile']['tmp_name'] ) ) { $upload = "../members/img/"; $upload .= $_FILES['MyUploadFile']['name']; $new_pic = "../members/img/"; $new_pic .= $job_id .".jpg"; # テンポラリディレクトリにある実際のファイル $file = $_FILES['MyUploadFile']['tmp_name']; # ファイルの属性等を取得 $target = getimagesize( $file ); # 現在のサイズ $width = $target[0]; $height = $target[1]; # 新しいサイズ $width_new = 250; $height_new = (int)( ($height/$width)*$width_new ); # JPEG の場合 if ( $target[2] == IMAGETYPE_JPEG ) { # 元のファイルのハンドル $jpeg = imagecreatefromjpeg ( $file ); # 新しいイメージ $jpeg_new = imagecreatetruecolor( $width_new, $height_new ); # サイズ変更して新しいイメージへ転送 $ret = imagecopyresampled( $jpeg_new, $jpeg, 0, 0, 0, 0, $width_new, $height_new, $width, $height ); if ( !$ret ) { print "サイズ変更に失敗しました\n"; return; } # JPEG ファイルとして、クオリティ 100 で出力 $ret = imagejpeg ( $jpeg_new, $new_pic, 100); if ( !$ret ) { print "ファイル作成に失敗しました\n"; return; } print "アップロードが完了しました\n"; print "<IMG src='$new_pic'>"; } } else { print "アップロードに失敗しました\n"; } } }

    • ベストアンサー
    • PHP
  • 画像アップ掲示板を作っています

    画像アップ掲示板を作っていて 画像アップと記事の投稿はできるのですが 記事だけの投稿ができないのです 画像ファイルが$imageとして、$image !==""でやるとアップロードできなくなりますが記事自体も書き込めなくなってしまいます どういう風にしたらいいんでしょうか if (is_uploaded_file($HTTP_POST_FILES["upfile"]["tmp_name"])) { copy($HTTP_POST_FILES["upfile"]["tmp_name"], $save_dir . $HTTP_POST_FILES["upfile"]["name"]); $image = $save_dir2 . $HTTP_POST_FILES["upfile"]["name"]; 画像保存スクリプトはこんな感じになってます

    • 締切済み
    • PHP

専門家に質問してみよう