1

ここに私が持っているものがあります:

ZURB ファイル アップローダーを実装しようとしていますが、ファイルをアップロードするのに問題があります。私のupload.phpファイルに何かあるのだろうかと思っています。このサイトはワードプレスで運営されており、私が使用しているフォームはユーザー プロファイル作成プロセスの一部です。

基本的に私がやりたいことは次のとおりです。

- 大きなフォームの一部としてのみ画像ファイルをアップロードする

-ファイルはカスタム フォルダーに移動する必要があり、プロファイル プロセス中にそこに保存できます (ユーザーがすべての情報を入力するのに数分かかります)。

-画像ファイルをサムネイルとしてプレビュー

JQ は次のとおりです。

$(document).ready(function(){

var thumb = $('img#thumb'); 

new AjaxUpload('imageUpload', {
    action: $('form#newHotnessForm').attr('action'),
    name: 'userfile',
    onSubmit: function(file, extension) {
        $('div.preview').addClass('loading');
    },
    onComplete: function(file, response) {
        thumb.load(function(){
            $('div.preview').removeClass('loading');
            thumb.unbind();
        });
        thumb.attr('src', response);
    }
});

});

html は次のとおりです。

<div class="preview">
<img id="thumb" width="50px" height="50px" src="<?php bloginfo('template_url'); ?>/images/thumbnail.png" />
</div>
<span class="wrap hotness">
<form id="newHotnessForm" action="<?php bloginfo('template_url'); ?>/upload.php" enctype='multipart/form-data'>                     
    <input type="file" id="imageUpload" size="20" accept="image/*"/>
    <label>Upload your image</label>
</form>

これが upload.php ファイルです。

$allowedExts = array("gif", "jpeg", "jpg", "png");
$extension = end(explode(".", $_FILES['userfile']["name"]));
if ((($_FILES['userfile']["type"] == "image/gif") 
|| ($_FILES['userfile']["type"] == "image/jpeg") 
|| ($_FILES['userfile']["type"] == "image/jpg") 
|| ($_FILES['userfile']["type"] == "image/png")) 
&& ($_FILES['userfile']["size"] < 20000000) 
&& in_array($extension, $allowedExts)) {
  if ($_FILES['userfile']["error"] > 0)
    {
    echo "Return Code: " . $_FILES['userfile']["error"] . "<br>";
    }
  else
    {
echo "Upload: " . $_FILES['userfile']["name"] . "<br>";
echo "Type: " . $_FILES['userfile']["type"] . "<br>";
echo "Size: " . ($_FILES['userfile']["size"] / 1024) . " kB<br>";
echo "Temp file: " . $_FILES['userfile']["tmp_name"] . "<br>";

if (file_exists("http://mysite.com/wp-content/themes/mytheme/uploads/" . $_FILES['userfile']["name"]))
  {
  echo $_FILES['userfile']["name"] . " already exists. ";
  }
else
  {
  move_uploaded_file($_FILES['userfile']["tmp_name"], "http://mysite.com/wp-content/themes/mytheme/uploads/" . basename($_FILES['userfile']['name']));
  echo "Stored in: " . "http://mysite.com/wp-content/themes/mytheme/uploads/" . $_FILES['userfile']["name"];
   }
 }
} else {echo "Invalid file";}

ここで何かが足りないのではないかと思っています。

ありがとうございました。

4

2 に答える 2

0

やっとファイルをアップロードできるようになりました。

方法は次のとおりです。

1-bodi0 によって上記の推奨される変更が行われました (ありがとう!)

これで私のupload.phpファイルを2変更しました:

$dirImagePath=dirname(__FILE__);
move_uploaded_file($_FILES['userfile']['tmp_name'], $dirImagePath.'/uploads/'.$_FILES['userfile']['name']);

これに対する解決策を見つけるために、これはなんと王室の苦痛でした。

于 2013-04-20T04:33:39.623 に答える