1

我正在使用 uploadify 将图像上传到服务器并将它们的文件名上传到数据库,然后使用 wordpress 动态生成将使用这些照片的页面。到目前为止,我所拥有的有时会起作用,有时却不起作用。

我希望uploadify 检查文件名是否已经存在(我将有数百个不同的用户上传图像),如果文件名匹配,我已经uploadify 返回一个错误,要求用户重命名文件。一旦文件成功上传。我删除了uploadify 按钮,并将文件名返回到将提交到我的数据库的隐藏字段。

然后我使用从数据库中提取的这个文件名来告诉 WP 在哪里查找文件。

但是,有时我会在创建的页面上成功查看文件,然后有时它会返回并告诉我禁止访问该文件。我已经阅读并发现了几个关于 uploadify 权限问题的案例,但我发现并尝试过的都没有成功。我尝试在uploadify.php 中添加一个chmod 命令,但没有成功。我尝试更改服务器上文件夹的权限,这对以后上传的文件没有任何影响。我不知道出了什么问题,甚至不知道从哪里开始解决问题。以下是我的 HTML(只是一个包含相关 uploadify 内容的摘录,因为完整的 HTML 页面非常大)和我的 uploadify.php 文件(有 2 个,因为我对每个文件都有不同的参数检查。

从标头上传脚本(两者):

$(function() {
    $('#photo_upload').uploadify({
        'buttonText' : 'Select File',
        'multi'    : false,
        'method'   : 'post',
        'fileSizeLimit' : '100KB',
        'height'   : 20,
        'swf'      : 'uploadify-v3/uploadify.swf',
        'uploader' : 'uploadify-v3/uploadify.php',
        'onUploadStart' : function(file) {
                                           $('#photo_upload').uploadify('settings','formData',{'upName' : $('#usersName').val()});
                                         },
        'onUploadSuccess' : function(file, data) {
                            if(data == 'failed'){
                                alert('The file you attempted to upload failed.  Please check that the file meets all requirements, then try again. Thank you.');
                            } else if(data == 'FileNameExists'){
                                alert('An image with the same file name already exists.  Please rename the file to a different name, then try again. Thank you.');
                            } else{
                            $("#photo_upload").remove();
                            var starting = data.indexOf("upload-images");
                            var savedAs = data.substring(starting+14 , data.indexOf(".jpg"))+".jpg";
                            document.form.photo.value = savedAs;
                            }
                        }
        // Your options here
    });
    $('#logo_upload').uploadify({
        'buttonText' : 'Select File',
        'multi'    : false,
        'method'   : 'post',
        'fileSizeLimit' : '100KB',
        'height'   : 20,
        'swf'      : 'uploadify-v3/uploadify.swf',
        'uploader' : 'uploadify-v3/uploadify2.php',
        'onUploadStart' : function(file) {
                                           $('#logo_upload').uploadify('settings','formData',{'upName' : $('#usersName').val()});
                                         },
        'onUploadSuccess' : function(file, data) {
                            if(data == 'failed'){
                                alert('The file you attempted to upload failed.  Please check that the file meets all requirements, then try again. Thank you.');
                            } else if(data == 'FileNameExists'){
                                alert('An image with the same file name already exists.  Please rename the file to a different name, then try again. Thank you.');
                            } else{
                            $("#logo_upload").remove();
                            var starting = data.indexOf("upload-images");
                            var savedAs = data.substring(starting+14 , data.indexOf(".jpg"))+".jpg";
                            document.form.logo.value = savedAs;
                            }
                        }
        // Your options here
    });
});

HTML(这只是上传按钮和字段的相关 HTML):

<span class="Form-Header">Upload Images</span>&nbsp;
    <br />
    <div id="Form-wrapper">
        <div id="Form-wrapper-left">
          Your Photograph:<br />
        </div>
        <div id="Form-wrapper-right">
          <input name="photo" type="hidden" id="photo" value="NULL"/>
          <input type="file" name="photo_upload" id="photo_upload" />

          (Image Dimensions: 300w x 420h, JPEG) (100kb Size Limit)
        </div>
        <div id="clear" style="clear:both;"></div>
        <br />
    </div>
    <div id="Form-wrapper">
        <div id="Form-wrapper-left">
          Your Logo:<br />
        </div>
        <div id="Form-wrapper-right">
          <input name="logo" type="hidden" id="logo" value="NULL"/>
          <input type="file" name="logo_upload" id="logo_upload" />
          (Image Dimensions: 450w x 65h, JPEG) (100kb Size Limit)
        </div>
        <div id="clear" style="clear:both;"></div>
    </div>
    <div id="Form-wrapper">
      <div id="Form-Footer"><strong>Next: </strong> Go <a href="#top">to the top of the page</a> and click on &quot;Profile Information&quot; to continue.<br />
        </div>
        <div id="clear" style="clear:both;"></div>
    </div>

最后,但同样重要的是,这里是我的uploadify1 和uploadify2 的PHP 页面(我只显示一个,因为它们除了大小要求之外都是相同的):

<?php
// Define a destination
$targetFolder = '/Eye-Doctors/upload-images'; // Relative to the root

if (!empty($_FILES)) {
    $tempFile = $_FILES['Filedata']['tmp_name'];

    $size = getimagesize($tempFile);
    if($size[0] <= 300 && $size[1] <= 420){

          $targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
          $targetFile = rtrim($targetPath,'/') . '/' . $_FILES['Filedata']['name'];

          // Validate the file type
          $fileTypes = array('jpg'); // File extensions
          $fileParts = pathinfo($_FILES['Filedata']['name']);

          if (in_array($fileParts['extension'],$fileTypes)) {

                       $exists = 0;
                        if( file_exists($targetFile) ) {
                                $exists = 1;
                                echo 'FileNameExists';



                        }
              if($exists == 0){
                move_uploaded_file($tempFile,$targetFile);
                echo $targetFile;
              }

          } else {
              echo 'failed';
          }

    } else{
        echo 'failed';
        }
}
?>

我真的希望这是足够的信息来获得一些帮助。我已经尝试到处寻找解决方案,但仍然找不到。如果还有什么我可以提供的帮助,请告诉我。

4

0 回答 0