public function postCode($filename, $zipFilename, $name, $options = array())
    {
        // Add IronWorker functions to the uploaded worker
        $this->addRunnerToArchive($zipFilename, $filename, $options);

        $this->setPostHeaders();
        $ts = time();
        $runtime_type = $this->runtimeFileType($filename);
        $sendingData = array(
            "code_name"  => $name,
            "name"       => $name,
            "standalone" => true,
            "runtime"    => $runtime_type,
            "file_name"  => "runner.php",
            "version"    => $this->version,
            "timestamp"  => $ts,
            "oauth"      => $this->token,
            "class_name" => $name,
            "options"    => array(),
            "access_key" => $name,
        );
        $sendingData = array_merge($sendingData, $options);
        $url = "projects/{$this->project_id}/codes";
        $post = array(
            "data" => json_encode($sendingData),
        );
        if ($this->curlEnabled() && version_compare(PHP_VERSION, '5.5.0', '>=')) {
            $post['file'] = new \CURLFile($zipFilename);
        } else {
            $post['file'] = '@' . $zipFilename;
        }
        $response = $this->apiCall(self::POST, $url, array(), $post);
        return self::json_decode($response);
    }