1

OK、私はここで困惑しています。写真のアップロードに役立つZendスクリプトを使用しています。それはうまく機能しますが、私は写真の名前をフォームの隠しフィールドにキャプチャしようとしています。名前が変わったので、隠しフィールドに入れてしまうものを取得する必要があります。Zendスクリプトは次のとおりです。

<?php
if (isset($_POST['upload'])) {
require_once('scripts/library.php');

    try {

        $destination = 'xxxxxxxx';
        $uploader = new Zend_File_Transfer_Adapter_Http();
        $uploader->setDestination($destination);

        $filename = $uploader->getFileName(NULL, FALSE);
        $uploader->addValidator('Size', FALSE, '90kB');
        $uploader->addValidator('ImageSize', FALSE, array('minheight' => 100, 'minwidth' => 100));

        if (!$uploader->isValid()) {
            $messages = $uploader->getMessages();
        } else {

            $no_spaces = str_replace(' ', '_', $filename, $renamed);
            $uploader->addValidator('Extension', FALSE, 'gif, png, jpg');
            $recognized = FALSE;

            if ($uploader->isValid()) {
                $recognized = TRUE;
            } else {

                $mime = $uploader->getMimeType();
                $acceptable = array('jpg' => 'image/jpeg',
                                    'png' => 'image/png',
                                    'gif' => 'image/gif');
                $key = array_search($mime, $acceptable);
                if (!$key) {
                    $messages[] = 'Unrecognized image type';
                } else {

                    $no_spaces = "$no_spaces.$key";
                    $recognized = TRUE;
                    $renamed = TRUE;
                }
            }

            $uploader->clearValidators();
            if ($recognized) {

                $existing = scandir($destination);
                if (in_array($no_spaces, $existing)) {

                    $dot = strrpos($no_spaces, '.');
                    $base = substr($no_spaces, 0, $dot);
                    $extension = substr($no_spaces, $dot);

                    $i = 1;
                    do {
                        $no_spaces = $base . '_' . $i++ . $extension;
                    } while (in_array($no_spaces, $existing));
                    $renamed = TRUE;
                }

                $uploader->addFilter('Rename', array('target' => $no_spaces));
                $success = $uploader->receive();
                if (!$success) {
                    $messages = $uploader->getMessages();
                } else {

                    $uploaded = "$filename uploaded successfully";
                    $pic = $filename;
                    if ($renamed) {
                        $uploaded .= " and renamed $no_spaces";
                    }
                    $messages[] = "$uploaded";
                }
            }
        }
    } catch (Exception $e) {
        echo $e->getMessage();
    }
}

ここでは、今のところエラーをスローしないように変数を作成しようとしてい$picます(フォームページ上)

if (isset($_POST['upload'])) {  } else { $pic = "unknown";}

$pic変数は、zendスクリプトのファイル名をコピーしようとしていたものです。フィードバックは大歓迎です:)

4

0 に答える 0