We use Tridion 2009 SP1 with XSLT Templates
The new multimedia component (v0.0) and its downloaded binary file will be correctly published on the preview site in the place where it is located first (the binary file is tbbPublishMultimedia by tbbPublishMultimedia , shown below).
The multimedia component will go into the workflow as a small revision of version v0.1 and during the work (in the section "Content of the finished version" Element "), the component can be edited and the binary file reloaded into the component as necessary.
Each time the v0.x component is saved in the workflow (as v0.1, v0.2, v0.3, v0.4, etc.), the latest version of the “in the workflow” component and its binary file will be correct published on the preview site.
Each time the multimedia component is approved for publication, it leaves the workflow and becomes a new major version (for example, v1.0 .... or v2.0, v3.0, etc.).
If the main version is subsequently edited and re-saved, it becomes the new version of the small version (for example, v1.1), it will be re-published the preview site (like its binary file), and it will be re-introduced workflow.
However, although Tridion correctly publishes the latest small revision of the version of the actual multimedia component (e.g. v1.1), it seems to publish only the latest major version of the binary file that it contains (e.g. version 1.0). Interestingly, it seems to publish the latest v1.1 metadata for this binary (i.e. file type and file size), but not the binary file itself.
In general, Tridion seems to publish the last small / “workflow” revision of the binary, if the multimedia component is v0.x but as soon as the main version exists, it will publish only the last major version of the binary (essentially the version before re-entry workflow).
Which looks anyway ...
<xsl:template name="tbbPublishMultimedia"> <xsl:if test="string(//tcm:Type)='Multimedia'"> <xsl:variable name="binaryid" select="string(//tcm:Component/@ID)"/> <xsl:element name="tcm:MultimediaPublishedFileName"> <xsl:value-of select="tcmse:PublishBinary($binaryid)"/> </xsl:element> </xsl:if> </xsl:template>
Note ... in the above template, you can specify the main version as tcmse:PublishBinary parameter for example, concat($binaryid,"-v2") - determine the version for publication, but since it does not allow you to specify a minor version, so in fact it doesn’t helped.