Kevin Bosak <[EMAIL PROTECTED]> writes: > Thanks again for the help but still no luck. > I set the TMPDIR environment variable manually and restarted apache > but still can't get the upload file in my script and nothing's being > written to the tmpdir. If there's anything else I can try please let > me know but I may just end up having to use CGI.pm for uploads.
Try replacing the apreq_xs_upload_link() function in glue/perl/xsbuilder/Apache/Request/Apache__Request.h with the following one; rebuild and install it. If this doesn't solve your problem, the next release should include more helpful diagnostics, but until then CGI.pm is always available. APR_INLINE static XS(apreq_xs_upload_link) { dXSARGS; MAGIC *mg; void *env; const char *name, *fname; apr_bucket_brigade *bb; apr_file_t *f; if (items != 2 || !SvROK(ST(0))) Perl_croak(aTHX_ "Usage: $upload->link($name)"); if (!(mg = mg_find(SvRV(ST(0)), PERL_MAGIC_ext))) Perl_croak(aTHX_ "$upload->link($name): can't find env"); env = mg->mg_ptr; bb = apreq_xs_rv2param(ST(0))->bb; name = SvPV_nolen(ST(1)); f = apreq_brigade_spoolfile(bb); if (f == NULL) { apr_off_t len; apr_status_t s; const apr_int32_t flags = APR_CREATE | APR_EXCL | APR_WRITE | APR_READ | APR_BINARY | APR_BUFFERED; s = apr_file_open(&f, name, flags, APR_OS_DEFAULT, apreq_env_pool(env)); if (s != APR_SUCCESS || apreq_brigade_fwrite(f, &len, bb) != APR_SUCCESS) XSRETURN_UNDEF; XSRETURN_YES; } if (apr_file_name_get(&fname, f) != APR_SUCCESS) XSRETURN_UNDEF; if (PerlLIO_link(fname, name) >= 0) XSRETURN_YES; else { apr_status_t s = apr_file_copy(fname, name, APR_OS_DEFAULT, apreq_env_pool(env)); if (s == APR_SUCCESS) XSRETURN_YES; } XSRETURN_UNDEF; } -- Joe Schaefer -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html