int TclWeb_UploadSave()

in src/mod_rivet_ng/TclWebapache.c [856:878]


int TclWeb_UploadSave(char *varname, Tcl_Obj *filename, TclWebRequest *req)
{
	apr_status_t status;

	status = apr_file_copy(req->upload->tempname,Tcl_GetString(filename),APR_FILE_SOURCE_PERMS,req->req->pool);
	if (status == APR_SUCCESS) {
	    return TCL_OK;
	} else {

        /* apr_strerror docs don't tell anything about a demanded buffer size, we're just adopting a reasonable guess */

        char  error_msg[1024];
        char* tcl_error_msg;
        apr_strerror(status,error_msg,1024);

        tcl_error_msg = apr_psprintf(req->req->pool,"Error copying upload '%s' to '%s' (%s)", req->upload->tempname,
                                                                                              Tcl_GetString(filename),
                                                                                              error_msg);

        Tcl_AddErrorInfo(req->interp,tcl_error_msg);
		return TCL_ERROR;
	}
}