2017-02-04 12 views
2

私は本当にすべてをチェックしてすべての例を調べましたが、解決策が見つかりませんでした。基本的に私がやろうとしているのは、単純にXMLファイルをアップロードして特定のフォルダに保存することです。フォルダが作成され、XAMPP localhostが使用されています。あなたがしようとしている場合

HTML事前に

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST" enctype="multipart/form-data"> 
    <div class="row"> 
     <div class="form-group col-lg-4 col-md-4 col-xs-4 col-sm-4"> 
      <input type="file" name="fileToUpload" id="fileToUpload" accept="text/xml"> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="col-lg-4 col-md-4 col-xs-4 col-sm-4"> 
      <button type="submit" class="btn btn-default" id="uploadFile" name="uploadFile" style="width: 100%">Upload</button> 
     </div> 
    </div> 
</form> 

PHP

<?php 
if (isset($_POST['uploadFile'])) { 
    $name = $_FILES["fileToUpload"]["name"]; 
    $tmp_name = $_FILES['fileToUpload']['tmp_name']; 
    $location = 'uploads/'; 
    move_uploaded_file($tmp_name, $location.$name); 
//also tried this -> copy($tmp_name, $location.$name); 
} 
?> 

おかげで、

B.

+0

button要素をinput type = "submit"に変更しようとしています。私もこの問題を抱えていましたが、変更後は動作しています –

+0

@ Xorifelse以前のプロジェクトでhtmlspecialcharsを使用しましたので、コピーしました。しかし、この場合、出力文字列は変更されません。それ)。私は自分のフォルダが書き込み可能であるかどうかをチェックして、それが正しいかどうかを確認しました。事は、例のIF条件が決して起こらないということです(条件は決して真ではありません)...私はヘッダー( 'Location:http://www.google.com/')を追加しました。そのIFブロック内のテストと同じように、それは決して発生しません。 B.デサイ私はこれを前にもう一度試みましたが、何も変えませんでした。 – bkfloyd94

答えて

0

は私のコードは次のようになりますチェック・フォーrアップロードされたファイル、それは行く方法ではありません。あなたは(あなたがボタンのvalue属性を指定したことがないので)値を持たないパラメータをチェックしているので、あなたのコードは動作しません

if(is_uploaded_file($_FILES['fileToUpload']['tmp_name'])) { # note the tmp_name, don't change this 
    # handling goes here 
} 

is_uploaded_fileのようなものを使用してください。さらに、ボタンに値を渡すことはお勧めしません。このタイプの動作が必要な場合(この場合はそうではありません)、<input type="hidden" name="your-name" value="your-value" />を使用してください。

+0

答えをありがとう。 残念ながら、is_uploaded_file($ _ FILES ['fileToUpload'] ['tmp_name'])は例外をスローします - >未定義インデックス... – bkfloyd94

+0

その場合、コード全体を表示していないか、 'http:// localhost/path/to/your/file.php'のように' $ _SERVER ['PHP_SELF'] 'の代わりにURL全体を入れてみてください。 – jake2389

+0

チェック上の私の答え..これらの助けのどれも。これはXAMPP/serverに関連するものです。 – bkfloyd94

0

苦しみの2日後、私はまだこの問題の具体的な解決策を見つけられませんでしたが、少なくともPHP/HTMLコードには何も書かれていませんでした。ローカルサーバーに接続するには、私はXAMPPを使用します。

最初に、私はそれを(同じパスに - Dディスクパーティションに)再インストールしようとしました。何も変更しませんでした。

は第二に、私はCのディスクにインストールしようとした - まだ何も

は第三に、私の代わりにWAMPをインストールしていないし、それはまだ動作しません。私は他のサーバー上で自分のコードをテストし、それは魅力的だった。

結論:サーバーはフォームが送信されたことを認識しません(IF条件は決して真ではありません)。

XAMPPのどの部分または他のAMPが何かをしなければならないことを誰かが知っているなら、私に知らせてください。私は本当にそれを感謝します。事前に

おかげ

+0

http://stackoverflow.com/questions/1282909/php-post-array-empty-upon-form-submission? –

+0

ありがとうございます。たくさんの修正がありましたが、私のために働いた人はいません...真剣に私はなぜそれが分からないのですか?私の友人がXAMPPを使用したのか、リモートサーバを使用したのかを返信するのを待っています。 – bkfloyd94

+0

私のXAMPP(主にバニラ)を起動しただけで、これを再現できました。あなたのファイルはどれくらいですか? –

0

[FIXED]だから、最後に...最も愚かな事は最大の混乱を引き起こす。..それがために使用すると最後に。

とにかく、私は自分のIDEとしてPhpStormを使用しており、独自の組み込みサーバーを持っています。私は自分のパラメータ(PHPインタープリタと実行コンフィギュレーション)を設定しても、PhpStormは自動的に別のサーバを使用していました。なぜXAMPPのドキュメントルートdirectoyは、私は私のプロジェクトを保存したものではなかったので、最初の場所でこの出来事がありました

は、あなたが2つの物事行うことができます。、XAMPPを使用している場合

  1. をあなたのプロジェクトを保存しますhtdocsまたは
  2. ApacheとMySqlを停止し、Apacheの設定 - > Apache(httpd。conff) - > DocumentRootの "C:/ XAMPP/htdocsに" を見つける&「ディレクトリ "C:/ XAMPP/htdocsに"

と置き換える "C:/ XAMPP/htdocsに" とのプロジェクトフォルダ自体を含む独自のパスとメインプロジェクトフォルダを含めずに親フォルダを含めると、コード実行中のパスはlocalhost:port/projectMainFolder/othersになります

私にとっては、私は解決策を見つけてからこの話題をロックすることができます。また、皆様にお越しいただきありがとうございました!

関連する問題