php利用iframe实现无刷新文件上传功能

网络整理 - 08-05

  " method="post" enctype="multipart/form-data" target="form-target" onsubmit="startUpload();">

  <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />

  <input type="file" name="myfile" />

  <input type="submit" name="sub" value="upload" />

  </form>

  <iframe style="width:0; height:0; border:0;" name="form-target"></iframe>

  </div>

  </body>

  </html>

  php代码

  <?php

  sleep(2);

  $fileTypes = array('jpg','png','gif','bmp');

  $result = null;

  $uploadDir = './upfiles';

  $maxSize = 1 * pow(2,20);

  if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['sub'])) {

  $myfile = $_FILES['myfile'];

  $myfileType = substr($myfile['name'], strrpos($myfile['name'], ".") + 1);

  if ($myfile['size'] > $maxSize) {

  $result = 1;

  } else if (!in_array($myfileType, $fileTypes)) {

  $result = 2;

  } elseif (is_uploaded_file($myfile['tmp_name'])) {

  $toFile = $uploadDir . 'http://www.cuoxin.com/' . $myfile['name'];

  if (@move_uploaded_file($myfile['tmp_name'], $toFile)) {

  $result = 0;

  } else {

  $result = -1;

  }

  } else {

  $result = 1;

  }

  }

  ?>

  <script type="text/">

  window.top.window.stopUpload(<?php echo $result; ?>);

  </script>