2012-04-10 9 views
0

誰かが私を助けてくれるかどうか疑問に思います。フォルダを作成し、存在しない場合は挿入してください

私はAurigmaの画像アップローダーソフトウェアを使用して、ユーザーが訪れた場所の画像をアップロードできるようにしています。情報は、以下に示すスクリプトを経由して保存されます。私は「locationid」は現在に基づいて、それの名前で、フォルダを作成するコードを追加した元のスクリプトにadditonで

<?php 

//This variable specifies relative path to the folder, where the gallery with uploaded files is located. 
//Do not forget about the slash in the end of the folder name. 
$galleryPath = 'UploadedFiles/'; 

require_once 'Includes/gallery_helper.php'; 

require_once 'ImageUploaderPHP/UploadHandler.class.php'; 

/** 
* FileUploaded callback function 
* @param $uploadedFile UploadedFile 
*/ 
function onFileUploaded($uploadedFile) { 

    $packageFields = $uploadedFile->getPackage()->getPackageFields(); 
    $username=$packageFields["username"]; 
    $locationid=$packageFields["locationid"]; 

    global $galleryPath; 

    $absGalleryPath = realpath($galleryPath) . DIRECTORY_SEPARATOR; 
    $absThumbnailsPath = $absGalleryPath . 'Thumbnails' . DIRECTORY_SEPARATOR; 

    if ($uploadedFile->getPackage()->getPackageIndex() == 0 && $uploadedFile->getIndex() == 0) { 
    initGallery($absGalleryPath, $absThumbnailsPath, FALSE); 
    } 

    $locationfolder = $_POST['locationid']; 
    $locationfolder = preg_replace('/[^a-z0-9_\-\.()\[\]{}]/i', '_', $locationfolder); 
    if (!is_dir($absGalleryPath . $locationfolder)) { 
    mkdir($absGalleryPath . $locationfolder, 0777); 
    } 

    $dirName = $_POST['folder']; 
    $dirName = preg_replace('/[^a-z0-9_\-\.()\[\]{}]/i', '_', $dirName); 
    if (!is_dir($absGalleryPath . $dirName)) { 
    mkdir($absGalleryPath . $dirName, 0777); 
    } 

    $path = rtrim($dirName, '/\\') . '/'; 

    $originalFileName = $uploadedFile->getSourceName(); 

    $files = $uploadedFile->getConvertedFiles(); 

    // save converter 1 

    $sourceFileName = getSafeFileName($absGalleryPath, $originalFileName); 
    $sourceFile = $files[0]; 
    /* @var $sourceFile ConvertedFile */ 
    if ($sourceFile) { 
    $sourceFile->moveTo($absGalleryPath . $sourceFileName); 
    } 

    // save converter 2 

    $thumbnailFileName = getSafeFileName($absThumbnailsPath, $originalFileName); 
    $thumbnailFile = $files[1]; 
    /* @var $thumbnailFile ConvertedFile */ 
    if ($thumbnailFile) { 
    $thumbnailFile->moveTo($absThumbnailsPath . $thumbnailFileName); 
    } 

    //Load XML file which will keep information about files (image dimensions, description, etc). 
    //XML is used solely for brevity. In real-life application most likely you will use database instead. 
    $descriptions = new DOMDocument('1.0', 'utf-8'); 
    $descriptions->load($absGalleryPath . 'files.xml'); 

    //Save file info. 
    $xmlFile = $descriptions->createElement('file'); 
    $xmlFile->setAttribute('name', $_POST['folder'] . '/' . $originalFileName); 
    $xmlFile->setAttribute('source', $sourceFileName); 
    $xmlFile->setAttribute('size', $uploadedFile->getSourceSize()); 
    $xmlFile->setAttribute('originalname', $originalFileName); 
    $xmlFile->setAttribute('thumbnail', $thumbnailFileName); 
    $xmlFile->setAttribute('description', $uploadedFile->getDescription()); 
    //Add additional fields 
    $xmlFile->setAttribute('username', $username); 
    $xmlFile->setAttribute('locationid', $locationid); 
    $xmlFile->setAttribute('folder', $dirName); 
    $descriptions->documentElement->appendChild($xmlFile); 
    $descriptions->save($absGalleryPath . 'files.xml'); 
} 

$uh = new UploadHandler(); 
$uh->setFileUploadedCallback('onFileUploaded'); 
$uh->processRequest(); 
?> 

。これを以下に示します。私は取り入れたいと何

$locationfolder = $_POST['locationid']; 
    $locationfolder = preg_replace('/[^a-z0-9_\-\.()\[\]{}]/i', '_', $locationfolder); 
    if (!is_dir($absGalleryPath . $locationfolder)) { 
    mkdir($absGalleryPath . $locationfolder, 0777); 
    } 

は、フォルダを作成していない場合は、フォルダが現在の「locationid」の値を持つ設定がすでに存在しているかどうかを確認することになりますチェックです。私はceratianly PHPの専門家ですが、私はファイルが存在するかどうかを確認することを知っていますif(file exists....)が使用できますが、私はちょうど誰かが私はフォルダ名のこのチェックを実装する方法を教えてくださいか?

感謝

クリス

答えて

1

私はis_dir()は、あなたが探しているものだと思います。

UPDATE:あなたが持っている

コード:

if (!is_dir($absGalleryPath . $locationfolder)) { 
    mkdir($absGalleryPath . $locationfolder, 0777); 
} 

正確に何をしたい行います。それはフォルダーをチェックし、存在しなければ(CHMOD 777を使用して)フォルダーを作成します。あなたの質問が何であるかわからない...

+1

説明のために多くのありがとう。私は、コードの全セクションが実際に何をしたのかを100%確信していなかったことを認めなければならない。私はこれに比較的新しいので、私は「コピー&ペースト」を行い、私が必要としていたものを変更しました。しかし、より多くの知識を持つ人たちからいくつか指導を受けることは良いことです。よろしくお願いします。 – IRHM

+0

あなたはいつも歓迎されています。 – Michal

関連する問題