Bug #7418 Updated: Mac WWW upload error FIX
| From: | sniper@php.net | Date: | Sun, 28 Oct 2001 22:32:21 +0000 |
| Subject: | Bug #7418 Updated: Mac WWW upload error FIX | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-69229@lists.php.net to get a copy of this message | ||
ID: 7418
Updated by: sniper
Reported By: adam@webglow.com
Old Status: Open
Status: Closed
Bug Type: Feature/Change Request
Operating System: Any
PHP Version: 4.0.3pl1
New Comment:
This should be fixed in CVS now. You can try the latest
CVS snapshot from http://snaps.php.net/
Also, there are some minor leaks still in the new code.
If you encounter such leaks, please send the shortest
possible code + html with which you can reproduce the leak
to php-dev@lists.php.net (or me) so we can get rid of these leaks.
This fix will be in PHP 4.2.0.
--Jani
Previous Comments:
------------------------------------------------------------------------
[2000-10-23 19:32:54] adam@webglow.com
I found the following bit of code for removing the data fork from a file uploaded via www by a Mac
so that the file uploaded is usable. Trouble is it's in PERL and I want to run it directly from
PHP. So, my question is two fold:
1) Would it be possible for someone to translate it from PERL -> PHP
2) Would it be possible to add this code into PHP to solve the Mac upload problem once and for all?
Here's a copy of the code:
--------------------------
The following subroutine "extracts the data fork (what most people would call the real file
contents) from the middle of the macbinary encapsulation (which also includes the resource fork and
some metadata like type and creator). I got this code off the net, so if it's not entirely
accurate, I'm sure one of you will tell me. Basically, the first 128 bytes appears to be a
header, and bytes 84 through 87 appear to be a network-order integer value of how many bytes
immediately following the header constitute the datafork. So, with the right manipulation, I'm
done."
sub strip_fork_from_fh {
my $fh = shift;
my $len = read $fh, (my $buf), 128; # read the header
die "short read: $len" unless $len == 128;
my $bytes = unpack("x83N", $buf); # get datafork length
read $fh, $buf, $bytes;
$buf;
}
You can view the article I found the code from at http://www.stonehenge.com/merlyn/WebTechniques/col46.html
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=7418&edit=1