<form action="transfer.php" method="post"> <div style="display:none;"> <input type="hidden" name="repository" value="' . $repository . '" /> <input type="hidden" name="usercourse" value="' . $usercourse . '" /> <input type="hidden" name="sessionkey" value="' . $sessionkey . '" /> </div> <table>'; foreach ($materials as $id => $fields) { // フィールドを分解 // @see /course/format/repository/RepositoryMaterial.php # download() list($sha1, $type, $icon, $text) = explode('|', $fields, 4); // ダウンロードボタンがクリックされたら、教材ファイルをHTTP通信により取得 if (!empty($downloads[$id])) { $user_dir = make_user_directory($USER->id); $temp_dir = make_upload_directory('temp/download', false); $zip_name = SharingCart_Repository::getDownloadName($id); if (!is_dir($user_dir) || !is_dir($temp_dir)) { throw new SharingCart_RepositoryException('Directory creation failure'); } if (is_file($user_dir . '/' . $zip_name)) { throw new SharingCart_RepositoryException('File already exists'); } $response_header = FileTransfer::downloadFile($temp_dir . '/' . $zip_name, $repository_wwwroot . '/course/format/repository/material.php', array('mode' => 'transfer', 'material' => $id, 'sessionkey' => $sessionkey)); // ダウンロードしたファイルのハッシュを比較してダウンロード成功かチェック if (sha1_file($temp_dir . '/' . $zip_name) == $sha1) { if (!rename($temp_dir . '/' . $zip_name, $user_dir . '/' . $zip_name)) { throw new SharingCart_RepositoryException('File rename failure'); } $sharing_cart = new stdClass(); $sharing_cart->user = $USER->id; $sharing_cart->name = $type;